Representación de implementaciones de vista: action-mappings y global-forwards
La descripción de implementaciones de vistas específicas del dispositivo y específicas de la tienda, realizada en versiones anteriores de utilizando la tabla de base de datos VIEWREG, se lleva a cabo en la aplicación web de con una combinación de los elementos de action-mappings y global-forwards.
Por qué y cuándo se efectúa esta tarea
Considere las cuatro asociaciones representadas en la siguiente tabla:
Nombre de vista | ID de formato de dispositivo | ID de tienda | Interfaz de mandatos de vista | Clase de implementación de mandato de vista | Propiedades | HTTPS | Credenciales aceptadas |
---|---|---|---|---|---|---|---|
AddressBookForm | -1 | 0 | com.ibm.commerce.command.ForwardViewCommand | com.ibm.commerce.command.HttpForwardViewCommandImpl | docname= Address-BookForm.jsp |
0 | NULL |
AddressBookForm | -1 | 201 | com.ibm.commerce. command.ForwardViewCommand | com.ibm.commerce.command.HttpForwardViewCommandImpl | docname=UserArea/AccountSection/AddressbookSubsection/AddressBookForm.jsp |
1 | P |
GenericPassword-ErrorView | -1 | 0 | com.ibm.commerce.command.ForwardViewCommand | com.ibm.commerce.command.HttpForwardViewCommandImpl | docname=Generic-Application-Error.jsp&storedir=no |
0 | NULL |
CompleteOrderView | -3 | 201 | com.ibm.commerce.messaging.viewcommands. MessagingViewCommand | com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl | docname=CompleteOrder.jsp |
0 | NULL |
Donde:
- ID de formato de dispositivo
- Identificador del dispositivo al que se enviará la vista. El formato de dispositivo predeterminado es -1, que representa un navegador web HTTP.
- ID de tienda
- Número de referencia de tienda para este URI o 0 para indicar cualquier tienda.
- Propiedades
- Pares nombre-valor utilizados para esta vista, en forma de una serie de consulta de peticiones HTTP.
- HTTPS
- El valor de
1
indica que se esperaba recibir la petición en un canal seguro(HTTPS) y que se emitirá una redirección al puerto SSL si se ha recibido en un canal no seguro (HTTP). - Credenciales aceptadas
- El valor P indica que los usuarios autenticados parcialmente están autorizados a acceder a este recurso.
El siguiente fragmento de configuración describe las tres primeras asociaciones:
<global-forwards>
<forward name="AddressBookForm" path="/AddressBookForm.jsp"/>
<forward className="com.ibm.commerce.struts.ECActionForward" name="AddressBookForm/201"
path="/UserArea/AccountSection/AddressbookSubsection/AddressBookForm.jsp">
<set-property property="resourceClassName" value="com.ibm.commerce.command.HttpForwardViewCommandImpl" />
</forward>
<forward className="com.ibm.commerce.struts.ECActionForward" name="GenericPasswordErrorView"
path="/GenericApplicationError.jsp">
<set-property property="properties" value="storeDir=no" />
<set-property property="resourceClassName" value="com.ibm.commerce.command.HttpForwardViewCommandImpl" />
</forward>
</global-forwards>
<action-mappings type="com.ibm.commerce.struts.ECActionMapping">
<action path="/AddressBookForm" type="com.ibm.commerce.struts.BaseAction">
<set-property property="https" value="0:0,201:1" />
<set-property property="credentialsAccepted" value="201:P" />
</action>
<action path="/GenericPasswordErrorView" type="com.ibm.commerce.struts.BaseAction" />
</action-mappings>
Notes:
- El valor del atributo className de los elementos forward.
- La sintaxis del atributo Name de los elementos forward. un par docname/ storeID, cuyo segundo componente toma de forma predeterminada el valor 0.
- El uso de la propiedad resourceClassName para especificar la clase de implementación de mandatos de vista, cuyo valor predeterminado es com.ibm.commerce.command.HttpForwardViewCommandImpl.
- También puede establecer la propiedad authenticate para vistas, con la misma sintaxis y semántica que para los URL (que se describen en el apartado anterior).
- La última fila de la tabla anterior representa un messaging view, que es un ejemplo de una vista que no está pensada para mostrarse en un navegador y que requiere distinta sintaxis para especificar el tipo de dispositivo así como propiedades especiales para especificar la implementación para generar la respuesta:
<global-forwards> <forward className="com.ibm.commerce.struts.ECActionForward" name="CompleteOrderView/201/-3" path="/AuctionArea/Messages/CompleteOrder.jsp"> <set-property property="implClassName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl"/> <set-property property="interfaceName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommand"/> </forward> </global-forward> <action-mappings type="com.ibm.commerce.struts.ECActionMapping"> <action path="/CompleteOrderView" type="com.ibm.commerce.struts.BaseAction" /> </action-mapping>
- La extensión de la sintaxis del atributo name del elemento forward: un tríptico docname/ storeID / deviceFormatID , cuyo tercer componente tiene como valor predeterminado -1.
- Para identificar los valores correctos para el servicio de composición de mensajes, consulte Creación de un mensaje de salida.
- El uso de la propiedad implClassName para especificar la clase de implementación de mandatos de vista y la propiedad interfaceName para especificar la interfaz de mandatos de vista. Utilice únicamente esta propiedad para definir las políticas de control de acceso basadas en implementaciones de vista ya que se proporciona por motivos de compatibilidad con las versiones anteriores de .