Uploaded image for project: 'Struts 1'
  1. Struts 1
  2. STR-2885

Integration struts-faces

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Not A Problem
    • Nightly Build
    • None
    • None
    • winxp sp2, j2sdk1.4.7_02,struts1.2.9,jsf1.1_01,struts-faces(20060530)
    • Patch, Important

    Description

      Hi, sorry, i don't speak english... i'm peruvian...
      Actualmente tengo una aplicación web basada en struts, la cual trabaja bien. Ahora, quiero integrarla con jsf en una nueva funcionalidad a agregar... He seguido las pasos recomendados en: http://www.oracle.com/technology/pub/articles/masterj2ee/j2ee_wk8.html...
      En el archivo web.xml:
      ...
      <context-param>
      <param-name>javax.faces.CONFIG_FILES</param-name>
      <param-value>/WEB-INF/faces-config.xml</param-value>
      </context-param>
      <context-param>
      <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
      <param-value>client</param-value>
      </context-param>
      ...
      <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet>
      <description>Servlet de Inicio</description>
      <display-name>Servlet InitServlet</display-name>
      <servlet-name>InitServlet</servlet-name>
      <servlet-class>com.app.utils.InitServlet</servlet-class>
      <init-param>
      <param-name>jdbcURL</param-name>
      <param-value>jdbc:mysql://localhost:3306/test</param-value>
      </init-param>
      <init-param>
      <param-name>username</param-name>
      <param-value>user</param-value>
      </init-param>
      <init-param>
      <param-name>password</param-name>
      <param-value>pass</param-value>
      </init-param>
      <init-param>
      <param-name>autoCommit</param-name>
      <param-value>false</param-value>
      </init-param>
      <load-on-startup>2</load-on-startup>
      </servlet>
      <servlet>
      <servlet-name>action</servlet-name>
      <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
      <init-param>
      <param-name>application</param-name>
      <param-value>Recursos</param-value>
      </init-param>
      <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
      </init-param>
      <load-on-startup>3</load-on-startup>
      </servlet>
      ...
      <servlet-mapping>
      <servlet-name>action</servlet-name>
      <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>/faces/*</url-pattern>
      </servlet-mapping>
      ...

      En el struts-config.xml:
      <struts-config>
      <form-beans>
      ...
      <form-bean name="OrdersPositionsListForm" type="com.app.invoicing.entity.OrdersPositionsListToInvoiceWrapper"/>
      </form-beans>
      <action-mappings>
      ...
      <action path="/consultOrdersPositionsToInvoiceWithoutSpot"
      type="com.app.invoicing.actions.ListOrdersToInvoiceAction"
      parameter="WithoutSpot"
      input="/custom.do">
      <forward name="success" path="/faces/jsp/invoicing/listOrdersPositionsToInvoice.jsp"/>
      </action>
      <action path="/editInvoiceWithoutSpot"
      type="com.app.invoicing.actions.EditInvoiceAction"
      parameter="WithoutSpot"
      name="OrdersPositionsListForm"
      scope="request"
      input="/consultOrdersPositionsToInvoiceWithoutSpot.do">
      <forward name="success" path="/jsp/invoicing/editInvoice.jsp"/>
      </action>
      </action-mappings>
      <controller>
      <set-property property="processorClass"
      value="org.apache.struts.faces.application.FacesRequestProcessor"/>
      </controller>
      <message-resources parameter="Recursos"/>
      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
      <set-property property="pathnames"
      value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
      </plug-in>
      </struts-config>

      El archivo jsp/invoicing/listOrdersPositionsToInvoice.jsp
      <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
      <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
      <%@ taglib uri="http://struts.apache.org/tags-faces" prefix="s" %>
      <f:view>
      <html>
      <head>
      <title>Seleccionar Items de Orden de Compra a Facturar</title>
      <s:stylesheet path="/default.css"/>
      </head>
      <body>
      <s:errors/>
      <h:panelGrid columns='2'>
      <h:outputLabel value='Proveedor:' style='font-weight: bold'/>
      <h:outputText value='#

      {OrdersPositionsListForm.supplier.razon}

      '/>

      <h:outputLabel value='Nro. Orders:' style='font-weight: bold'/>
      <h:outputText value='#

      {OrdersPositionsListForm.size}

      '/>
      </h:panelGrid>
      <s:form action='/editInvoiceWithoutSpot' id='ordersPositionsList'>
      <h:dataTable value='#

      {OrdersPositionsListForm.ordersPositionsList}

      ' var='orderPosition' styleClass='borde'>
      <h:column>
      <f:facet name='header'><h:outputText value='Select'/></f:facet>
      <h:selectBooleanCheckbox value='#

      {orderPosition.selected}

      '/>
      </h:column>
      <h:column>
      <f:facet name='header'><h:outputText value='Nro. Orden'/></f:facet>
      <h:outputText value='#

      {orderPosition.numoc}

      '/>
      </h:column>
      <h:column>
      <f:facet name='header'><h:outputText value='Fecha Envío'/></f:facet>
      <h:outputText value='#

      {orderPosition.fenvio}

      '>
      <f:convertDateTime pattern='yyyy-MM-dd hh:mm:ss'/>
      </h:outputText>
      </h:column>
      </h:dataTable>
      <h:panelGroup>
      <h:commandButton id='submit' type='SUBMIT' value='Seleccionar'/>
      <h:commandButton id='reset' type='RESET' value='Resetear'/>
      </h:panelGroup>
      </s:form>
      </body>
      </html>
      </f:view>

      El escenario es como sigue, deseo iniciar el proceso de creacion de una factura, para ello, lo primero que tengo que hacer es seleccionar los items a facturar... entonces selecciono de un menu la opcion Ingresar factura, que tiene un link a: consultOrdersPositionsToInvoiceWithoutSpot.do, la cual se abre en una nueva ventana, la aplicación se ejecuta bien, pero cuando veo el fragmento del codigo fuente desde la pagina generada...:
      ...
      <form id="ordersPositionsList" name="OrdersPositionsListForm" action="/app/jsp/invoicing/listOrdersPositionsToInvoice.do" method="post">
      <input type="hidden" name="ordersPositionsList" value="ordersPositionsList" />
      <input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="785b8dbfa2d49ce82b8730b5b1352d22" />
      ....
      me queda esta interrogante... ¿porque action="/app/jsp/invoicing/listOrdersPositionsToInvoice.do", no debería ser action="/editInvoiceWithoutSpot.do"?, ya que, como es lógico, cuando envío (submit) el form, tomcat no encontrará el recurso solicitado y me enviará al custom.do....
      ¿qué debo hacer?... please... help me...

      Attachments

        Activity

          People

            Unassigned Unassigned
            crojasy Carlos Rojas
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: