Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/07/2008, 22:35
0skar
 
Fecha de Ingreso: marzo-2007
Ubicación: En El salvador
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Problema con LookUpDispatchAction

Tengan un buen día foreros. Primeramente no estoy seguro si aquí es el subforo idóneo para poner algo sobre Struts, si no lo es pues de antemano pido disculpas. Estoy trabajando con struts usando como IDE Jdeveloper. y he estado tratando de hacer uso de LookUpDispatchAction pues tengo un menú en el cual tengo varios botones que me llevan a diversas páginas, para lo cual en un solo action quiero tener los métodos que retornarán los action mappings diversos para ir a una página jsp o a otra, el punto es que he leido unos 10 tutoriales distintos y noto ciertas diferencias entre unos y otros, pero tambien me he guiado por libros PDF y ya lo hice varias veces, al pié de la letra y no me funciona, sencillamente cuando presiono un botón solo me sale una url larga pero luego no me muestra nada, simplemente en blanco en mi navegador. Les muestro l código para que lo vean (No pondré todo el código del action o del jsp, solo el que interviene):

- mainMenu.jsp (aqui hay varios botones para ir a varias paginas, para el caso solo tengo 2 botones ahorita)
Código:
<html:form action="/MainMenuAction">
                <html:submit property="metodo"><bean:message key="submit.add"/></html:submit>
                <html:submit property="metodo"><bean:message key="submit.edit"/></html:submit>
            </html:form>
-MainMenuForm no lo pongo porque mainMenu.jsp no tiene campos como un textfield o algo por el estilo, pero igual en mi proyecto esta creado dicho AtionForm

- MainMenuAction (el action que controla los requests de mainMenu, aclaro que aunque no lo ponga aquí, este action implementa la interfaz LookUpDispachAction y no borré el método execute)
Código:
    protected Map getKeyMethodMap() 
    {
        Map mapa = new HashMap();
        mapa.put("submit.add", "add");
        mapa.put("submit.edit", "edit");
        return mapa;
    }
    
    public ActionForward add(ActionMapping mapping, ActionForm form, 
                                 HttpServletRequest request, 
                                 HttpServletResponse response) throws IOException, 
                                                                      ServletException 
    {
        return mapping.findForward( "add");
    }
    
    public ActionForward edit(ActionMapping mapping, ActionForm form, 
                                 HttpServletRequest request, 
                                 HttpServletResponse response) throws IOException, 
                                                                      ServletException 
    {
        return mapping.findForward( "edit");
    }
- struts-config
Código:
<form-beans>
    <form-bean name="LoginForm" type="empresa.banco.forms.LoginForm"/>
    <form-bean name="MainMenuForm" type="empresa.banco.forms.MainMenuForm"/>
    <form-bean name="AddProductForm" type="empresa.banco.forms.AddProductForm"/>
    <form-bean name="ModProductForm" type="empresa.banco.forms.ModProductForm"/>
  </form-beans>
  <action-mappings>
           
    <action path="/MainMenuAction" type="empresa.banco.actions.MainMenuAction"
            name="MainMenuForm" parameter="metodo" scope="request" validate="true">
      <forward name="add" path="/addProduct.jsp"/>
      <forward name="edit" path="/modProduct.jsp"/>
    </action>
    <action path="/AddProductAction"
            type="empresa.banco.actions.AddProductAction"
            name="AddProductForm"/>
    <action path="/ModProductAction"
            type="empresa.banco.actions.ModProductAction"
            name="ModProductForm"/>
  </action-mappings>
  <message-resources parameter="empresa.banco.ApplicationResources"/>
- addProducto.jsp y modProducto.jsp son las jsp destino dependiendo si presiono el primer boton submit del form o el segundo respectivamente, no pongo el código porque simplemente no tienen nada, solo un texto plano que diferencia una página de la otra, solo a modo de ejemplo para comprobar si me funciona, pero como pueden ver en struts-config estas ultimas 2 jsp tienen sus respectivos actionForms y Actions, por lo que no creo que eso me de error.

Considero uqe he seguido al pié de la letra todos los pasos de los tutoriales e incluso entiendo la logica (o al menos eso creo) pero por alguna razón no me funciona, si digamos le doy click a un botón pues sale como si me llevara a la jsp pero no carga nada, solo en blanco y al ver el código fuente ni me aparece codigo fuente, y en la URL me aparece así:

http://192.168.1.6:8989/banco-ViewCo...0df4957d08eb74

Tambien otra cosa, nose si tenga que ver ni entiendo porque me sale así, en mi Jdeveloper cuando estoy editando el código de la JSP, en tutoriales he visto que le meten un bean:message dentro de un html:submit para "rotular" dicho boton, de la siguiente manera:

<html:submit property="metodo">
<bean:message key="submit.add"/>
</html:submit>

Lo hago en mi JSP pero en Jdeveloper me sale como que si estuviera erróneo eso de tener el submit de la siguiente manera:

<html:submit property="metodo"></html:submit>

Porque cuando lo arrastro de la paleta de controles de Jdeveloper el código que crea es así:

<html:submit/>

Pero si lo modifico y lo dejo con un tag de apertura y uno de cierre me da error, pueden verlo en la siguiente imagen:

http://www.oscarcalderon.info/struts/error.JPG

A pesar de ello, al compilar el proyecto funciona y corre la jsp de manera normal, pero nose si eso será la razon por la cual no funcione el uso de LookUpDispatchAction, por favor ayudenme.