Utilización de los paquetes de recursos en las páginas de la tienda

Se ha adoptado una nueva línea de programación en las tiendas de inicio, que ahora utilizan la biblioteca de etiquetas estándar de páginas JavaServer (JSTL) para ejecutar la lógica de vista, en lugar de código Java.

Por qué y cuándo se efectúa esta tarea

Esto cambia la manera de utilizar los paquetes de recursos con las páginas de tienda. Durante la ejecución, cada JSP solicitado incluye el archivo JSTLEnvironmentSetup.jspf. Este archivo recupera y prepara la vía de acceso a las páginas JSP, la vía de acceso a los archivos y el paquete de recursos, que otras páginas JSP utilizan. A este archivo lo llaman muchos archivos JSP de la tienda. El contexto del mandato y el entorno local se recuperan de la siguiente manera:


LocalizationContext storeDynamicTextContext = (LocalizationContext)
request.getAttribute("storeDynamicText");
if (storeDynamicTextContext == null){
CommandContext cmdcontext = (CommandContext)
request.getAttribute(ECConstants.EC_COMMANDCONTEXT);
Locale locale = cmdcontext.getLocale();

El entorno local se utiliza para recuperar el ResourceBundle (paquete de recursos) específico del entorno local mediante una llamada a sdb.getResourceBundle, tal como se muestra en el ejemplo siguiente:


<wcbase:useBean id="sdb"
classname="com.ibm.commerce.common.beans.StoreDataBean"
scope="request" />
...
...
storeDynamicTextContext = new
LocalizationContext(sdb.getResourceBundle("storetext_dynamic"),
locale);
request.setAttribute("storeDynamicText", storeDynamicTextContext);
}

Durante la ejecución se recuperan los datos dinámicos utilizando diversos métodos de bean de servidor, una operación que se ejecuta dentro del contexto del idioma actual. El valor devuelto para el parámetro de idioma (language_ID) determina el idioma en el que se visualiza el nombre de la tienda. El método displayName de StoreDataBean recupera este valor. El ejemplo siguiente muestra la petición del nombre de visualización de la tienda específico del idioma:


<c:set var="storeName"
value="${sdb.storeEntityDescriptionDataBean.displayName}"
scope="page" />

El entorno local y el idioma se recuperan durante la ejecución para determinar la carpeta correcta en la que se ha de buscar el archivo de imágenes.


<c:set var="locale" value="${CommandContext.locale}"
scope="page" />
<c:set var="langId" value="${CommandContext.languageId}"
scope="page" />

Por ejemplo, es posible que la plantilla busque el archivo ConsumerDirect/lang_country/images/colors/color1/go_button.gif, donde lang_country es la parte correspondiente a language_region del entorno local recuperado desde el contexto de mandato. La página de resultados mostrará la imagen: ConsumerDirect/en_US/images/colors/color1/go_button.gif ConsumerDirect/ja_JP/images/colors/color1/go_button.gif