Integration struts-faces
------------------------

         Key: STR-2885
         URL: http://issues.apache.org/struts/browse/STR-2885
     Project: Struts Action 1
        Type: Bug

  Components: Faces  
    Versions: Nightly Build    
 Environment: winxp sp2, 
j2sdk1.4.7_02,struts1.2.9,jsf1.1_01,struts-faces(20060530)
    Reporter: Carlos Rojas


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...

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to