Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/05/2008, 08:41
Avatar de Lino-kun
Lino-kun
 
Fecha de Ingreso: mayo-2008
Ubicación: Cuernavaca Morelos Mexico
Mensajes: 126
Antigüedad: 16 años
Puntos: 2
Re: problema con formularios

¿Cómo trabaja un DispatchAction?

Te pondré un ejemplo suponte que tengo una aplicación en la que necesito usar un mismo formulario pero cuando presiono un botón debe hacer un proceso y cuando presiono el otro debe hacer otro proceso.

Si esto te ocurre en un mismo formulario intenta algo así.

Código PHP:
//Supuesto action.
public class ConsultaAction extends DispatchAction{

    public 
ActionForward doLogin(ActionMapping mapping,ActionForm form,HttpServletRequest requestHttpServletResponse response)throws IOExceptionServletException{
                  
//codigo de acceso a BD para tu login, de preferencia has una capa BO
                 // y desde la capa BO invoca una DAO que es la que invoca a las BD
            
}
    
    public 
ActionForward doEnviar(ActionMapping mapping,ActionForm form,HttpServletRequest requestHttpServletResponse response)throws IOExceptionServletException{
        
//codigo de enviar
    

En tu jsp algo como esto.

Código PHP:
<html:form action="/ConsultaAction" name="ConsultaForm" type="com.lpsoft.consulta.form.ConsultaForm">
<
html:hidden property="dispatch" value=""/> 
El parámetro dispatch en un hidden le dice al compilador que tiene un comportamiento de despachador de peticiones, el hecho de que permanezca con un valor nulo es para que puedas elegir cual método se ejecuta al presionar algún botón.

Código PHP:
<html:submit onClick="return enviar('ConsultaForm','login')>Login</html:submit>
<html:submit onClick="
return enviar('ConsultaForm','enviar')>Envia</html:submit
Generas una function de java script para indicar cual metodo del dispatch se ejecutara.

Código PHP:
function enviar(formutp){
   var 
formulario document.forms[formu]; //formulario
   
var tipo tp//metodo a ejecutar
  
    
if (tipo==login){
       
alert("login");
       
formulario['dispatch'].value="doLogin";
     }else if(
tipo==enviar){
       
formulario['dispatch'].value="doEnviar";
     }
   }else{
     
alert("metodo Action incorrecto");
     return 
false;
   }
   return 
true;

El principio de la sabiduria es el respeto y el amor a Dios.