Personnalisation des configurations de contrôleur
Avant de commencer
id dans votre configuration de contrôleur personnalisée. Ce nom est défini dans le fichier de définition d'objet où l'objet ou l'affichage associé à la requête URL est défini.
<SearchService name="findAllCatalogEntries" url="/cmc/FindCatalogEntries-All">
<ServiceParam name="storeId"/>
<ServiceParam name="masterCatalogId"/>
<ServiceParam name="defaultLanguageId"/>
</SearchService>Le nom de requête URL se trouve dans la valeur de l'attribut url dans la définition de service. Cette valeur inclut également le nom du package, /cmc. Vous n'avez besoin que de la partie name de l'URL de la valeur d'attribut url, qui pour cette requête URL est FindCatalogEntries-All. Dans la configuration de contrôleur correspondante pour cette requête URL dans le fichier de configuration spring-ibm-catalog.xml, la valeur de l'attribut id correspond à la valeur de l'attribut url dans la définition de service de recherche.
<bean id="/FindCatalogEntries-All" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<property name="viewName" value="/jsp/commerce/catalog/restricted/FindAllCatalogEntries.jsp"/>
</bean>
Procédure
- Ouvrir les discussions vocales HCL Commerce Developer
- Dans la vue Explorateur d'entreprise, développez
- Ouvrez le fichier spring-extension.xml pour l'éditer.
-
Suivez l'une des méthodes suivantes
Option Description Pour remplacer une configuration existante - Ouvrez le fichier spring-ibm-component.xml qui inclut la configuration que vous souhaitez remplacer.
- Recherchez et copiez la configuration du contrôleur que vous souhaitez remplacer pour un objet ou une vue.
- Ajoutez votre configuration copiée dans le fichier spring-extension.xml en tant qu'élément enfant direct de l'élément
<beans>de niveau supérieur.
Pour définir une nouvelle configuration - Dans le fichierspring-extension.xml, ajoutez une définition d'élément
<bean>en tant qu'élément enfant direct de l'élément<beans>de niveau supérieur. - Incluez un attribut
idpour votre nouveau<bean>et définissez la valeur comme nom de la requête de service URL.
-
Définissez ou modifiez la valeur de l'attribut
class.Cet attribut identifie la classe de contrôleur à utiliser pour traiter la demande.Par exemple, la classe
com.ibm.commerce.foundation.client.facade.bod.servlet.spring.BusinessObjectDocumentControllerest utilisée pour transférer des objets entre des noms Management Center et HCL Commerce. Si vous devez transférer des objets, dans les requêtes de service BOD de modification ou de traitement, incluez cette classe dans votre configuration. -
Définissez ou modifiez les propriétés de la configuration dans les éléments
<property>.Ces propriétés définissent les informations qui peuvent être transmises au contrôleur au sujet de la requête URL.Par exemple, vous pouvez inclure des propriétés pour configurer les types d'informations suivants à transmettre au contrôleur :- Informations qui identifient l'objet URL et les paramètres de configuration à utiliser pour traiter la requête.
- Actions à effectuer sur l'objet URL, par exemple pour créer, modifier ou supprimer l'objet.
- Réponses aux fichiers JSP qui doivent être utilisés pour générer la réponse au format XML pour revenir à Management Center. Si votre requête URL attend à une vue différente en fonction des résultats du traitement de l'action associée à la requête, vous pouvez inclure des propriétés différentes pour chaque vue attendue. Par exemple, vous pouvez avoir une propriété
successViewetfailureViewavec chaque valeur de propriété identifiant le JSP approprié.
Chaque propriété d'étape est définie par un élément
<property>distinct. Chaque élément doit inclure l'attributnamepour identifier le nom de la propriété. Vous pouvez inclure un attributvaluepour indiquer la valeur de la propriété ou inclure un sous-élément<props>pour fournir une liste de paramètres à transmettre au contrôleur de la propriété. Vous pouvez inclure les paramètres, tels que l'ID de magasin, l'ID de langue et l'ID de catalogue, en tant que propriétés imbriquées dans l'élément<props>. Incluez chaque propriété imbriquée comme sous-élément<prop>distinct, avec le format<prop key="name">value</prop>, oùnameest le nom du paramètre etvalueest la valeur pour le paramètre.L'extrait de code suivant montre un exemple d'élément
<property>avec une valeur et d'élément<property>avec une liste de sous-éléments<prop>.<property name="urlObject" value="CatalogEntryDescription"/><property name="contextParameters"> <props> <prop key="storeId">storeId</prop> <prop key="langId">langId</prop> <prop key="masterCatalogId">catalogId</prop> </props> </property><property name="verb" value="Change"/> - Enregistrez et fermez le fichier.
Exemple
- Service BOD de modification (Change)
<bean id="/CreateCatalogEntryDescription" class="com.ibm.commerce.foundation.client.facade.bod.servlet.spring.BusinessObjectDocumentController"> <property name="urlObject" value="CatalogEntryDescription"/> <property name="contextParameters"> <props> <prop key="storeId">storeId</prop> <prop key="langId">langId</prop> <prop key="masterCatalogId">catalogId</prop> </props> </property> <property name="verb" value="Change"/> <property name="documentRootFactory" value="com.ibm.commerce.catalog.facade.datatypes.CatalogFactory"/> <property name="clientLibrary" value="com.ibm.commerce.catalog.facade.client.CatalogFacadeClient"/> <property name="clientLibraryMethod" value="changeCatalogEntry"/> <property name="actionCode" value="Change"/> </bean> - Service BOD de traitement (Process)
<bean id="/CreateCatalogEntry" class="com.ibm.commerce.foundation.client.facade.bod.servlet.spring.BusinessObjectDocumentController"> <property name="urlObject" value="CatalogEntry"/> <property name="contextParameters"> <props> <prop key="storeId">storeId</prop> <prop key="langId">langId</prop> <prop key="masterCatalogId">catalogId</prop> </props> </property> <property name="verb" value="Process"/> <property name="documentRootFactory" value="com.ibm.commerce.catalog.facade.datatypes.CatalogFactory"/> <property name="clientLibrary" value="com.ibm.commerce.catalog.facade.client.CatalogFacadeClient"/> <property name="clientLibraryMethod" value="processCatalogEntry"/> <property name="actionCode" value="Create"/> <property name="var" value="catalogEntries"/> <property name="successView" value="/jsp/commerce/catalog/restricted/RespondCreateCatalogEntry.jsp"/> </bean>