Modification des fichiers de configuration Struts 2
Cette référence décrit les modifications apportées aux fichiers de configuration entre Struts 1.x et Struts 2.
La plupart des changements de migration sont effectués par l'outil strutsmigration.jar. Pour connaître la procédure de migration en détail, voir Migration d'applications Web IBM Websphere Commerce version 7 Feature Pack 6 personnalisées vers Struts 2
Contenu
Migration des fichiers de configuration
Stores.WAR
- Fichiers de configuration Struts
Changements Avant Après Nom du fichier OOTB struts-config.xml
struts-config-xxx.xml
struts-stores.xml
struts-wcs-stores.xml
struts-wcs-stores-xxx.xml
File Location \WEB-INF WEB-INF\classes Fichiers de personnalisation struts-config-ext.xml
struts-wcs-stores-custom.xml
<package extends="wcs-stores" name=" stores-custom " namespace="/"> - Web.xml
Changements Avant Après Mise à jour du 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>Ajouter un contexte 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>Ajouter un contexte de programme d'écoute <listener> <listener-class>com.ibm.commerce.struts.v2.StrutsConfigFilesServletContextListener</listener-class> </listener>
- Fichiers de configuration Struts
Changements Avant Après Nom du fichier OOTB struts-config.xml
struts-config-xxx.xml
struts-accelerator.xml
struts-wcs-accelerator.xml
struts-wcs-accelerator-xxx.xml
File Location \WEB-INF WEB-INF\classes Fichiers de personnalisation struts-config-ext.xml
struts-wcs-accelerator-custom.xml
<package extends="wcs-accelerator" name="accelerator-custom " namespace="/">
- Web.xml
Changements Avant Après Mise à jour du 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>Ajouter le filtre sruts2 à la fin de la définition de filtre <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>Ajouter un contexte de servlet <context-param> <param-name>isStruts2</param-name> <param-value>true</param-value> </context-param>
- Fichiers de configuration Struts
Changements Avant Après Nom du fichier OOTB struts-config.xml
struts-config-xxx.xml
struts-orgadmin.xml
struts-wcs-orgadmin.xml
struts-wcs-orgadmin-xxx.xml
File Location \WEB-INF WEB-INF\classes Fichiers de personnalisation struts-config-ext.xml
struts-wcs-orgadmin-custom.xml
<package extends="wcs-orgadmin" name="orgadmin-custom " namespace="/"> - Web.xml
Changements Avant Après Mise à jour du 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>Ajouter le filtre sruts2 à la fin de la définition de filtre <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>Ajouter un contexte de servlet <context-param> <param-name>isStruts2</param-name> <param-value>true</param-value> </context-param>
- Fichiers de configuration Struts
Changements Avant Après Nom du fichier OOTB struts-config.xml
struts-config-xxx.xml
struts-siteadmin.xml
struts-wcs-adminconsole.xml
struts-wcs-adminconsole-xxx.xml
File Location \WEB-INF WEB-INF\classes Fichiers de personnalisation struts-config-ext.xml
struts-wcs-adminconsole-custom.xml
<package extends="wcs-adminconsole" name="adminconsole-custom " namespace="/"> - Web.xml
Changements Avant Après Mise à jour du 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>Ajouter le filtre sruts2 à la fin de la définition de filtre <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>Ajouter un contexte de servlet <context-param> <param-name>isStruts2</param-name> <param-value>true</param-value> </context-param>
Configuration de Struts 1.x par rapport à Struts 2
Action
| 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 |
|
|
Exemples :
<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"/> |
|
Exemples :
<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 |
|
|
Exemples :
<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=""/> |
Exemples :
<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” />Redirection et transfert
https://hostname:port/webapp/wcs/stores/servlet/ReLogonFormView avec les paramètres.| Struts 1 | Struts 2 | |
| 1 |
|
|
| 2 |
|
|
Service d'enregistrement et de transfert (Store and Forward)
<result name="AjaxCategorySubscriptionDisplay/11001" type="wcsstore">
<param name="location">/Snippets/Catalog/CategoryDisplay/CategorySubscriptionDisplay.jsp</param>
</result>
AuroraB2BStorefrontAssetStore/Snippets/Catalog/CategoryDisplay/CategorySubscriptionDisplay.jsp
| 1 |
|
|
| 2 |
|
|
Plug-in
Comme Struts 2 ne prend pas en charge les plug-ins composés dans Struts version 1, la méthode d'initialisation des plug-ins a changé. Un nouveau fichier, ComponentPlugins.xml, est utilisé à cette fin. Déplacez vos définitions de plug-in du fichier de configuration de Struts 1 vers ComponentPlugins.xml comme indiqué ci-dessous.
| Struts1 | Struts2 | |
| Emplacement du fichier | Stores\WEB-INF\struts-config-*.xml | Stores\WEB-INF\classes\ComponentPlugins.xml |
| schéma |
|
|
| Prise en charge de plug-in |
com.ibm.commerce.struts.ComponentPlugIn com.ibm.commerce.struts.VerificationCodePlugInImpl |
com.ibm.commerce.struts.v2.ComponentPlugIn com.ibm.commerce.struts.v2.VerificationCodePlugInImpl |
| Exemple de plug-in |
|
|
Les plug-ins définis dans ComponentPlugins.xml seront chargés lorsque le contexte de servlet sera initialisé. Si vous souhaitez qu'un autre fichier (par exemple customPlugins.xml) contienne des plug-ins personnalisés, modifiez 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>