Cambios de archivo de configuración de Struts 2
Esta referencia describe los cambios en los archivos de configuración entre Struts 1.x y Struts 2.
La mayoría de los cambios de migración se realizan mediante la herramienta strutsmigration.jar . Para ver los pasos de migración detallados, consulte Migración de aplicaciones web personalizadas de IBM Websphere Commerce Versión 7 Feature Pack 6 a Struts 2
Contenido
Migración de archivos de configuración
Stores.WAR
- Archivos de configuración de Struts
Cambios Antes del Después Nombre de archivo de OOTB struts-config.xml
struts-config-xxx.xml
struts-stores.xml
struts-wcs-stores.xml
struts-wcs-stores-xxx.xml
Ubicación del archivo \WEB-INF WEB-INF\classes Archivos personalizados struts-config-ext.xml
struts-wcs-stores-custom.xml
<package extends="wcs-stores" name=" stores-custom " namespace="/">
- Web.xml
Cambios Antes del Después Añadir contexto de servlet <servlet> ... <servlet-name>Stores Request Servlet</servlet-name> <servlet-class>com.ibm.commerce.struts.ECActionServlet</servlet-class> ... </servlet>
<servlet> ... <servlet-name>Stores Request Servlet</servlet-name> <servlet-class>com.ibm.commerce.struts.v2.ECActionStrutsServlet</servlet-class> ... </servlet>
Añadir contexto de servlet <context-param> <param-name>component-plugin-file</param-name> <param-value>ComponentPlugins.xml</param-value> </context-param> <context-param> <param-name>initServlet</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>isStruts2</param-name> <param-value>true</param-value> </context-param>
Añadir contexto de escucha <listener> <listener-class>com.ibm.commerce.struts.v2.StrutsConfigFilesServletContextListener</listener-class> </listener>
- Archivos de configuración de Struts
Cambios Antes del Después Nombre de archivo de OOTB struts-config.xml
struts-config-xxx.xml
struts-accelerator.xml
struts-wcs-accelerator.xml
struts-wcs-accelerator-xxx.xml
Ubicación del archivo \WEB-INF WEB-INF\classes Archivos personalizados struts-config-ext.xml
struts-wcs-accelerator-custom.xml
<package extends="wcs-accelerator" name="accelerator-custom " namespace="/">
- Web.xml
Cambios Antes del Después Añadir contexto de servlet <servlet> ... <servlet-name> Commerce Accelerator Request Servlet</servlet-name> <servlet-class>com.ibm.commerce.struts.ECActionServlet</servlet-class> ... </servlet>
<servlet> ... <servlet-name>Commerce Accelerator Request Servlet</servlet-name> <servlet-class>com.ibm.commerce.struts.v2.ECActionServlet</servlet-class> … </servlet>
Añadir filtro sruts2 al final de la definición de filtro <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>config</param-name> <param-value>struts-default.xml,struts-plugin.xml,struts-accelerator.xml</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <servlet-name>Commerce Accelerator Request Servlet</servlet-name> </filter-mapping>
Añadir contexto de servlet <context-param> <param-name>isStruts2</param-name> <param-value>true</param-value> </context-param>
- Archivos de configuración de Struts
Cambios Antes del Después Nombre de archivo de OOTB struts-config.xml
struts-config-xxx.xml
struts-orgadmin.xml
struts-wcs-orgadmin.xml
struts-wcs-orgadmin-xxx.xml
Ubicación del archivo \WEB-INF WEB-INF\classes Archivos personalizados struts-config-ext.xml
struts-wcs-orgadmin-custom.xml
<package extends="wcs-orgadmin" name="orgadmin-custom " namespace="/">
- Web.xml
Cambios Antes del Después Añadir contexto de servlet <servlet> ... <servlet-name>Organization Administration Request Servlet</servlet-name> <servlet-class>com.ibm.commerce.struts.ECActionServlet</servlet-class> ... </servlet>
<servlet> ... <servlet-name>Organization Administration Request Servlet</servlet-name> <servlet-class>com.ibm.commerce.struts.v2.ECActionServlet</servlet-class> … </servlet>
Añadir filtro sruts2 al final de la definición de filtro <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>config</param-name> <param-value>struts-default.xml,struts-plugin.xml,struts-orgadmin.xml</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <servlet-name>Organization Administration Request Servlet</servlet-name> </filter-mapping>
Añadir contexto de servlet <context-param> <param-name>isStruts2</param-name> <param-value>true</param-value> </context-param>
- Archivos de configuración de Struts
Cambios Antes del Después Nombre de archivo de OOTB struts-config.xml
struts-config-xxx.xml
struts-siteadmin.xml
struts-wcs-adminconsole.xml
struts-wcs-adminconsole-xxx.xml
Ubicación del archivo \WEB-INF WEB-INF\classes Archivos personalizados struts-config-ext.xml
struts-wcs-adminconsole-custom.xml
<package extends="wcs-adminconsole" name="adminconsole-custom " namespace="/">
- Web.xml
Cambios Antes del Después Añadir contexto de servlet <servlet> ... <servlet-name>Site Administration Request Servlet</servlet-name> <servlet-class>com.ibm.commerce.struts.ECActionServlet</servlet-class> ... </servlet>
<servlet> ... <servlet-name>Site Administration Request Servlet</servlet-name> <servlet-class>com.ibm.commerce.struts.v2.ECActionServlet</servlet-class> … </servlet>
Añadir filtro sruts2 al final de la definición de filtro <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>config</param-name> <param-value>struts-default.xml,struts-plugin.xml,struts-siteadmin.xml</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <servlet-name>Site Administration Request Servlet</servlet-name> </filter-mapping>
Añadir contexto de servlet <context-param> <param-name>isStruts2</param-name> <param-value>true</param-value> </context-param>
Configuración de Struts1.x frente a Struts2
Acción
Struts 1 | Struts 2 | |
1 | <action type =” com.ibm.commerce.struts.BaseAction”/> |
<action class="com.ibm.commerce.struts.v2.BaseAction"/> |
2 | <action parameter="com.ibm.commerce.security.commands.LogonCmd" /> |
|
3 | <action path="/Logon" /> |
<action name="Logon"/> |
4 |
|
|
Ejemplos:
<action parameter="com.ibm.commerce.security.commands.LogonCmd"
path="/Logon" type="com.ibm.commerce.struts.BaseAction">
<set-property property="csrfProtected" value="0:0"/>
<set-property property="https" value="0:1"/>
<set-property property="authenticate" value="0:0"/>
</action>
<action class="com.ibm.commerce.struts.v2.BaseAction" name="Logon">
<param name="authenticate">0:0</param>
<param name="csrfProtected">0:0</param>
<param name="https">0:1</param>
<param name="parameter">com.ibm.commerce.security.commands.LogonCmd</param>
</action>
Struts 1 | Struts 2 | |
1 | <forward/> |
<result/> |
2 | <forward name="RedirectView"/> |
<result name="RedirectView"/> |
3 |
|
|
4 | <forward redirect="true"/> |
|
Ejemplos:
<forward className="com.ibm.commerce.struts.ECActionForward"
name="LogoffView" path="/Logoff.jsp">
<set-property property="properties" value="storeDir=no"/>
<set-property property="resourceClassName" value="com.ibm.commerce.command.HttpForwardViewCommandImpl"/>
</forward>
<result name="LogoffView">
<param name="location">/Logoff.jsp</param>
<param name="properties">storeDir=no</param>
<param name="resourceClassName">com.ibm.commerce.command.HttpForwardViewCommandImpl</param>
</result>
GlobeForward
Struts 1 | Struts 2 | |
1 | <global-forwards/> |
<global-results/> |
2 |
|
|
Ejemplos:
<global-forwards>
<forward className="com.ibm.commerce.struts.ECActionForward"
name="CookieErrorView" path="/GenericSystemError.jsp">
<set-property property="properties" value="storeDir=no"/>
<set-property property="resourceClassName" value="com.ibm.commerce.command.HttpForwardViewCommandImpl"/>
</forward>
</global-forwards>
<global-results>
<result name="CookieErrorView">
<param name="location">/GenericSystemError.jsp</param>
<param name="properties">storeDir=no</param>
<param name="resourceClassName">com.ibm.commerce.command.HttpForwardViewCommandImpl</param>
</result>
</global-results>
Struts 1 | Struts 2 | |
1 | <message-resources/> |
<constant name="struts.custom.i18n.resources" value=""/> |
Ejemplos:
<message-resources
className="com.ibm.commerce.struts.messages.WCMessageResourcesConfig"
factory="com.ibm.commerce.struts.messages.WCPropertyMessageResourcesFactory"
key="org.apache.struts.action.MESSAGE" null="true" parameter="com.ibm.strutsstore.resources.ApplicationResources">
<set-property property="additionalProperties" value="com.ibm.commerce.ras.properties.ecServerMessages"/>
</message-resources>
<constant name="struts.custom.i18n.resources" value="com.ibm.commerce.ras.properties.ecServerMessages” />
Reenvío y redireccionamiento
https://hostname:port/webapp/wcs/stores/servlet/ReLogonFormView
con parámetros.Struts 1 | Struts 2 | |
1 |
|
|
2 |
|
|
Reenvío de tienda
<result name="AjaxCategorySubscriptionDisplay/11001" type="wcsstore">
<param name="location">/Snippets/Catalog/CategoryDisplay/CategorySubscriptionDisplay.jsp</param>
</result>
AuroraB2BStorefrontAssetStore/Snippets/Catalog/CategoryDisplay/CategorySubscriptionDisplay.jsp
1 |
|
|
2 |
|
|
Plugins
Puesto que Struts 2 no da soporte a plugins compuestos en Struts versión 1, el método para inicializar plugins ha cambiado. Para este fin se utiliza un nuevo archivo, ComponentPlugins.xml. Mueva las definiciones de plugin del archivo de configuración de Struts 1 a ComponentPlugins.xml como se indica a continuación.
Struts1 | Struts2 | |
Ubicación de archivo | Stores\WEB-INF\struts-config-*.xml | Stores\WEB-INF\classes\ComponentPlugins.xml |
esquema |
|
|
Soporte de plugin |
com.ibm.commerce.struts.ComponentPlugIn com.ibm.commerce.struts.VerificationCodePlugInImpl |
com.ibm.commerce.struts.v2.ComponentPlugIn com.ibm.commerce.struts.v2.VerificationCodePlugInImpl |
Ejemplo de plugin |
|
|
Los plugins definidos en ComponentPlugins.xml se cargarán cuando se inicialice el contexto de servlet. Si desea tener otro archivo (por ejemplo customPlugins.xml) que contenga plugins personalizados, edite Stores\WEB-INF\web.xml
<context-param>
<param-name>component-plugin-file</param-name>
<param-value>ComponentPlugins.xml</param-value>
</context-param>
<context-param>
<param-name>component-plugin-file</param-name>
<param-value>ComponentPlugins.xml, customPlugins.xml</param-value>
</context-param>