Personalización de configuraciones de controlador
Antes de empezar
id
en la configuración de controlador personalizada. Este nombre se define en el archivo de definición de objeto donde se define el objeto o la vista que está asociado con la petición de URL.
<SearchService name="findAllCatalogEntries" url="/cmc/FindCatalogEntries-All
">
<ServiceParam name="storeId"/>
<ServiceParam name="masterCatalogId"/>
<ServiceParam name="defaultLanguageId"/>
</SearchService>
El nombre de petición de URL está en el valor del atributo url
en la definición de servicio. Este valor también incluye el nombre de paquete, /cmc
. Solo necesita la parte de nombre de URL del valor de atributo url
, que para esta petición de URL es FindCatalogEntries-All
. En la configuración de controlador correspondiente para esta petición de URL en el archivo de configuración spring-ibm-catalog.xml, el valor del atributo id
coincide con el valor para el atributo url
en la definición de servicio de búsqueda.
<bean id="/FindCatalogEntries-All
" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<property name="viewName" value="/jsp/commerce/catalog/restricted/FindAllCatalogEntries.jsp
"/>
</bean>
Procedimiento
- Abra HCL Commerce Developer
- En la vista Explorador de empresa, expanda
- Abra el archivo spring-extension.xml para editarlo.
-
Complete uno de los procedimientos siguientes
Opción Descripción Para alterar una configuración existente - Abra el archivo spring-ibm-component.xml que incluye la configuración que desea alterar.
- Localice y copie la configuración de controlador que desea alterar para un objeto o una vista.
- Añada la configuración copiada en el archivo spring-extension.xml como un elemento secundario directo del elemento
<beans>
.
Para definir una nueva configuración - Dentro del archivo spring-extension.xml, añada una definición de elemento
<bean>
como un elemento secundario directo del elemento<beans>
. - Incluya un atributo
id
para el nuevo<bean>
y establezca el valor en el nombre de la petición de servicio de URL.
-
Establezca o cambie el valor para el atributo
class
.Este atributo identifica la clase de controlador que debe utilizarse para procesar la petición.Por ejemplo, la clase
com.ibm.commerce.foundation.client.facade.bod.servlet.spring.BusinessObjectDocumentController
se utiliza para transferir objetos entre los nombres Management Center y HCL Commerce. Si tiene que transferir objetos, por ejemplo en peticiones de servicio BOD de cambio o proceso, incluya esta clase en la configuración. -
Establezca o cambie las propiedades para la configuración en los elementos
<property>
.Estas propiedades definen la información que se puede pasar al controlador acerca de la petición de URL.Por ejemplo, puede incluir propiedades para configurar los siguientes tipos de información que se debe pasar al controlador:- Información que identifica el objeto de URL y los parámetros de configuración que se deben utilizar para procesar la petición.
- Acciones que deben realizarse en el objeto de URL, como crear, cambiar o eliminar el objeto.
- Archivos JSP de respuesta que se necesitan utilizar para generar la respuesta con formato XML que se debe devolver a Management Center. Si la petición de URL espera una vista diferente basándose en los resultados del proceso de la acción que está asociada con la petición, puede incluir propiedades diferentes para cada vista prevista. Por ejemplo, puede tener una propiedad
successView
yfailureView
con cada valor de propiedad que identifica la JSP adecuada.
Cada propiedad debe definirse en un elemento
<property>
independiente. Cada elemento debe incluir el atributoname
para identificar el nombre de la propiedad. Puede incluir un atributovalue
para indicar el valor de la propiedad o incluir un subelemento<props>
para proporcionar una lista de parámetros que se deben pasar al controlador de la propiedad. Puede incluir los parámetros, como el ID de tienda, ID de idioma y el ID de catálogo, como propiedades anidadas en el elemento<props>
. Incluya cada propiedad anidada como un subelemento<prop>
independiente, con el formato<prop key="name">value</prop>
, dondename
es el nombre del parámetro yvalue
es el valor del parámetro.El fragmento de código siguiente muestra un ejemplo de un elemento
<property>
con un valor y un elemento<property>
con una lista de subelementos<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"/> - Guarde y cierre el archivo.
Ejemplo
- BOD de cambio
<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>
- BOD de proceso
<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>