La plupart des pages de modèle de magasin utilisent les techniques d'implémentation suivantes. Cette page utilise le magasin InFashion comme modèle mais elle peut être appliquée à tous les modèles de magasin. Pour plus d'informations sur les techniques spécifiques d'une page, consultez le fichier de référence de cette page.
Contenu multiculturel
Les pages de magasin modèles sont également utilisées pour afficher un contenu multiculturel. Autrement dit, le même ensemble peut être utilisé pour plusieurs paramètres locaux différents. La majeure partie du code permettant d'activer l'affichage multiculturel se trouve dans le fichiergetResource.jsp. Le fichier getResource.jsp permet de réaliser les opérations suivantes :
Pour qu'un fichier JSP accède aux variables ci-dessus, le fichier getResource.jsp doit être inclus dans le fichier JSP à l'aide de l'instruction include au moment de la compilation :
<%@ include file="include/getResource.jsp"%>
Etant donné que le fichier getResource.jsp est inclus dans la plupart des fichiers JSP de modèle de magasin, il peut être exécuté plusieurs fois dans une seule requête. Pour plus d'efficacité, la plupart des informations extraites de cette page sont stockées dans le contexte de requête. Par exemple:
String storeDir = (String) request.getAttribute("storeDir"); String includeDir = (String) request.getAttribute("includeDir"); String fileDir = (String) request.getAttribute("fileDir"); String bundleDir = (String) request.getAttribute("bundleDir");
String storeName = "";
si (storeDir == null) {
storeDir = sdb.getJspPath(); fileDir = sdb.getFilePath(); includeDir = storeDir + "include" + "/"; bundleDir = sdb.getDirectory(); storeName = sdb.getDescription(cmdcontext.getLanguageId()).getDisplayName(); request.setAttribute("storeName", storeName); request.setAttribute("storeDir", storeDir); request.setAttribute("fileDir", fileDir); request.setAttribute("includeDir", includeDir); request.setAttribute("bundleDir", bundleDir); }
Messages spécifiques des langues
Les messages spécifiques d'une langue tels que "Merci d'avoir choisi...!" sont stockés dans les fichiers de propriétés des groupes de ressources. Ces fichiers se trouvent dans le répertoire suivant :
unité:\WebSphere\AppServer\installedApps\WC_Enterprise_App_nom_instance.ear\wcstores.war\WEB-INF\classes\rép_magasin
unité:\Program
Files\WebSphere\AppServer\installedApps\WC_Enterprise_App_nom_instance.ear\wcstores.war\WEB-INF\classes\rép_magasin
/usr/WebSphere/AppServer/installedApps/WC_Enterprise_App_nom_instance.ear/wcstores.war/WEB-INF/classes/rép_magasin
/opt/WebSphere/Appserver/installedApps/WC_Enterprise_App_nom_instance.ear/wcstores.war/WEB-INF/classes/rép_magasin
/opt/WebSphere/AppServer/installedApps/WC_Enterprise_App_nom_instance.ear/wcstores.war/WEB-INF/classes/rép_magasin
/QIBM/UserData/WebASAdv4/nom_instance_WAS/installedApps/WC_Enterprise_App_nom_instance.ear/wcstores.war/WEB-INF/classes/rép_magasin
Par exemple, si le répertoire de votre magasin est "rép_magasin", le fichier de propriétés anglais sera le suivant :
unité:\WebSphere\AppServer\installedApps\WC_Enterprise_App_nom_instance.ear\wcstores.war\WEB-INF\classes\rép_magasin
\infashiontext_en_US.properties.
unité:\Program
Files\WebSphere\AppServer\installedApps\WC_Enterprise_App_nom_instance.ear\wcstores.war\WEB-INF\classes\rép_magasin
/usr/WebSphere/AppServer/installedApps/WC_Enterprise_App_nom_instance.ear/wcstores.war/WEB-INF/classes/rép_magasin/infashiontext_en_US.properties.
/QIBM/UserData/WebASAdv4/nom_instance_WAS/installedApps/WC_Enterprise_App_nom_instance.ear/wcstores.war/WEB-INF/classes/rép_magasin/infashiontext_en_US.properties
Le contenu de ce fichier est chargé à l'aide de l'interface API Java java.util.ResourceBundle à partir du fichier JSP getResource.jsp. Le groupe de ressources est stocké en tant que variable infashiontext. Un message spécifique d'une langue s'affiche comme suit :
<title><%=infashiontext.getString("REGISTER_TITLE")%></title>
Définition du codage de contenu
La plupart des nouveaux navigateurs interprètent les données HTML codées en UTF-8. En revanche, certains navigateurs anciens ne peuvent comprendre que le codage natif. Par exemple, un navigateur japonais obsolète ne peut comprendre que les données HTML codées en "Shift_JIS". Pour résoudre ce problème, le magasin modèle spécifie le codage d'une langue dans les fichiers de propriété du groupe de ressources sous le nom de propriété ENCODESTATEMENT. Par exemple, le fichier de propriétés anglais infashiontext_en_US.properties contient l'entrée suivante :
ENCODESTATEMENT = text/html; charset=ISO_8859-1
Pour les fichiers JSP individuels, le codage est défini à l'aide de l'objet de requête JSP comme suit :
<% response.setContentType(infashiontext.getString("ENCODESTATEMENT")); %>
La définition du type de codage doit être effectuée le plus tôt possible dans le fichier JSP étant donné que l'en-tête HTTP est envoyé avec le contenu HTML. De ce fait, si vous définissez le type de contenu (qui est envoyé sous la forme d'un en-tête HTTP) après le contenu HTML, vous risquez de ne pas obtenir le résultat attendu. Le navigateur ne peut pas afficher les données correctement.
Insertion de l'en-tête, du bas de page et du panneau de navigation gauche
Presque toutes les pages de modèle de magasin contiennent une page d'en-tête (header.jsp), de bas de page (footer.jsp) et de panneau de navigation gauche (sidebar.jsp). Elles sont incluses dans les autres fichiers JSP à l'aide de l'instruction include au moment de l'exécution :
<% String incfile;
incfile = includeDir + "header.jsp"; %> <jsp:include page="<%=incfile%>" flush="true"/>
Si vous connaissez l'emplacement exact des fichiers JSP, vous pouvez simplifier le processus d'insertion à l'aide de ce qui suit :
<jsp:include page="/rép_magasin/include/header.jsp"/>
où header.jsp se trouve dans le sous-répertoire rép_magasin du répertoire principal des documents de l'application Web.
![]() |