Utilisation de regroupements de ressources dans les pages de magasin

Une nouvelle direction de programmation a été entreprise avec nos magasins types qui utilisent maintenant la bibliothèque JavaServer Pages Standard Tag Library (JSTL) pour effectuer la logique de vue, au lieu du code Java.

Pourquoi et quand exécuter cette tâche

Cela change la façon dont nous utilisons les regroupements de ressources avec les pages de magasin. En phase d'exécution, chaque page JSP demandée comprend le fichier EnvironmentSetup.jspf. Ce fichier récupère et prépare le chemin d'accès de la page JSP, le chemin d'accès des fichiers et le package de ressources, qui sont utilisés par d'autres pages JSP. Ce fichier est appelé par de nombreux fichiers JSP dans le magasin. Le contexte de commande et les locaux sont récupérés comme indiqué :


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

Le paramètre local est utilisé pour récupérer le ResourceBundle local (fichier de propriétés) approprié au moyen d'un appel à sdb.getResourceBundle comme indiqué dans l'exemple suivant :


<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);
}

Les données dynamiques sont récupérées lors de l'exécution à l'aide de différentes méthodes de bean de serveur et sont exécutées dans le contexte de la langue actuelle. La valeur retournée pour le paramètre de langue (language_ID) détermine la langue dans laquelle le nom du magasin s'affiche. La méthode displayName de StoreDataBean récupère cette valeur. L'exemple suivant montre la requête pour le nom d'affichage du magasin spécifique à la langue :


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

L'environnement local et la langue sont extraits en phase d'exécution pour déterminer le dossier approprié dans lequel le fichier image doit être recherché.


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

Par exemple, le modèle peut rechercher le fichier ConsumerDirect/ lang_country /images/colors/color1/go_button.gif, où lang_country est la partie language_region du site récupéré dans le contexte de commande. La page qui en résulte affiche l'image : ConsumerDirect/en_US/images/colors/color1/go_button.gif ConsumerDirect/ja_JP/images/colors/color1/go_button.gif