Activation de la bibliothèque client pour Struts
L'action de service du composant Struts est une classe d'implémentation d'action Struts qui peut être utilisée pour appeler un service de composants à partir d'une application Web traditionnelle. L'action de service de composant Struts est une sous-classe de com.ibm.commerce.struts.BaseAction. Cette action de service remplace la méthode invokeService(). La nouvelle implémentation de invokeService() transfère la mappe des paramètres d'entrée à une méthode de bibliothèque client configurée qui effectuera un service et renverra une mappe de paramètres de sortie.
Une fois la requête terminée, le comportement par défaut de l'action de service doit provoquer une redirection vers l'URL spécifiée par le redirecturl ou le paramètre de l'entrée URL. Cela se fait en ajoutant RedirectView comme valeur d'un paramètre de sortie nommé viewTaskName avant de renvoyer la mappe de sortie à la fin de la méthode invokeService(). Cela provoque l'implémentation de l'action de base pour appeler la commande RedirectView.
L'implémentation de l'action de service de composant Struts a le nom de classe suivant :
com.ibm.commerce.struts.ComponentServiceAction
com.ibm.commerce.struts.v2.ComponentServiceAction
Une nouvelle implémentation d'action Struts permet d'accéder aux méthodes adaptées au Web des modules de service. Il est recommandé de créer un nouveau fichier de configuration Struts pour chaque module de service.
Par exemple, créez un fichier nommé struts-config-myservicemodule.xml dans le répertoire WEB-INF.
<include file="struts-wcs-webapplication-myservicemodule.xml"></include> Les fichiers d'entrée de configuration Struts pour chaque application Web sont les suivants : - CommerceAccelerator
- CommerceAccelerator\WEB-INF\classes\struts-accelerator.xml
- OrganizationAdministration
- OrganizationAdministration\WEB-INF\classes\struts-orgadmin.xml
- SiteAdministration
- SiteAdministration\WEB-INF\classes\struts-siteadmin.xml
- Magasins
- Stores\WEB-INF\classes\struts-stores.xml
Plug-in du service client Struts
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software
Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<!-- Data Sources -->
<data-sources>
</data-sources>
<!-- Form Beans -->
<form-beans>
</form-beans>
<!-- Global Exceptions -->
<global-exceptions>
</global-exceptions>
<!-- Global Forwards -->
<global-forwards>
<forward className="com.ibm.commerce.struts.ECActionForward"
name="Example" path="/Example.jsp"/>
</global-forwards>
<!-- Action Mappings -->
<action-mappings
type="com.ibm.commerce.struts.ECActionMapping">
<!-- Struts Service Module Action Test
Run a webfriendly method from MyServiceModule -->
<action
parameter="myservicemodule.webfriendlymethod"
path="/Example"
type="com.ibm.commerce.struts.ComponentServiceAction">
<set-property property="authenticate" value="0:0"/>
<set-property property="https" value="0:1"/>
</action>
</action-mappings>
<!-- Define the MyServiceModule client facade -->
<plug-in className="com.ibm.commerce.struts.ComponentPlugIn">
<set-property property="componentId"
value="myservicemodule"/>
<set-property property="clientFacadeClassName"
value="com.mycompany.commerce.myservicemodule.facade.client.MyServiceModuleFacadeClient"/>
</plug-in>
</struts-config>
L'attribut parameter définit la bibliothèque client à utiliser. Le paramètre clientMethod définit la méthode de la bibliothèque client.<?xml version="1.0" encoding="UTF-8"?>
<ComponentPlugins> <!-- Define the MyServiceModule client facade -->
<plug-in className="com.ibm.commerce.struts.ComponentPlugIn" componentId="myservicemodule"
clientFacadeClassName="com.mycompany.commerce.myservicemodule.facade.client.MyServiceModuleFacadeClient"/>
</ComponentPlugins>
L'exemple suivant illustre le mappage d'action dans les fichiers de configuration Struts :<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package extends="wcs-stores" name="my-services" namespace="/">
<action class="com.ibm.commerce.struts.v2.ComponentServiceAction" name="Example">
<param name="authenticate">0:0</param>
<param name="https">0:1</param>
<param name="parameter">myservicemodule.webfriendlymethod</param>
</action>
</package>
</struts>
Le paramètre d'action paramètre définit la bibliothèque client à utiliser et la méthode à appeler. Activation de la bibliothèque client pour AJAX
L'action de service de composant Ajax Struts est une classe d'implémentation d'action Struts qui peut être utilisée pour appeler un service HCL Commerce en utilisant une requête de style Ajax depuis le navigateur. Tous les services activés par URL sont autorisés à prendre en charge AJAX et doivent simplement être configurés.
L'action de service de composant Ajax Struts est une sous-classe de :
com.ibm.commerce.struts.BaseAction
com.ibm.commerce.struts.v2.BaseAction
Cette action remplace la méthode invokeService. La nouvelle implémentation de invokeService transfère la mappe des paramètres d'entrée à une méthode de bibliothèque client configurée qui appelle un service et renvoie une mappe de paramètres de sortie.
Une fois la requête terminée, elle est transmise à un fichier JSP qui compose la réponse de service. Le fichier JSP de réponse de service crée un objet JSON à partir des valeurs trouvées dans la mappe de réponse.
L'action de service de composant Ajax Struts a le nom de classe suivant :
com.ibm.commerce.struts.AjaxComponentServiceAction
com.ibm.commerce.struts.v2.AjaxComponentServiceAction
Une action Struts qui utilise l'implémentation de service de composant Ajax est configurée dans un fichier struts-config.xml comme indiqué dans l'exemple XML suivant :
<action
parameter="com.ibm.commerce.catalog.facade.client.CatalogFacadeClient"
path="/AjaxChangeProduct"
type="com.ibm.commerce.struts.AjaxComponentServiceAction">
<set-property property="clientMethod"
value="changeProduct"/>
</action>
L'attribut parameter définit la bibliothèque client à utiliser. Le paramètre clientMethod définit la méthode de bibliothèque client.<action class="com.ibm.commerce.struts.v2.AjaxComponentServiceAction" name="AjaxPersonChangeServiceAddressAdd">
<param name="authenticate">0:0</param>
<param name="https">0:1</param>
<param name="parameter">member.addAddressForPerson</param>
</action>
<action
Le paramètre d'action paramètre définit la bibliothèque client à utiliser et la méthode à appeler.