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='#
'/>
<h:outputLabel value='Nro. Orders:' style='font-weight: bold'/>
<h:outputText value='#
'/>
</h:panelGrid>
<s:form action='/editInvoiceWithoutSpot' id='ordersPositionsList'>
<h:dataTable value='#
' var='orderPosition' styleClass='borde'>
<h:column>
<f:facet name='header'><h:outputText value='Select'/></f:facet>
<h:selectBooleanCheckbox value='#
'/>
</h:column>
<h:column>
<f:facet name='header'><h:outputText value='Nro. Orden'/></f:facet>
<h:outputText value='#
'/>
</h:column>
<h:column>
<f:facet name='header'><h:outputText value='Fecha Envío'/></f:facet>
<h:outputText value='#
'>
<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...