La maggior parte delle pagine del negozio di esempio utilizza le seguenti tecniche di implementazione. Questa pagina utilizza il negozio InFashion come esempio e può essere utilizzata per tutti i negozi di esempio. Per ulteriori informazioni sulle tecniche specifiche di una singola pagina, vedere il file di riferimento relativo a quella pagina.
Contenuto multi-culturale
Le pagine del negozio di esempio vengono utilizzate anche per visualizzare il contenuto multi-culturale. Ovvero la stessa serie di pagine può essere utilizzata per più locali diverse. La maggior parte del codice che consente la visualizzazione multi-culturale si trova nel file getResource.jsp. getResource.jsp effettua le seguenti operazioni:
Affinché un file JSP possa accedere alle variabili descritte precedentemente, è necessario che getResource.jsp sia incluso nel file JSP, che utilizza la direttiva del tempo di compilazione:
<%@ include file="include/getResource.jsp"%>
Poiché getResource.jsp è incluso nella maggior parte dei file JSP del negozio di esempio, può essere eseguito più volte in un'unica richiesta. Per evitare la duplicazione, la maggior parte delle informazioni richiamate in questa pagina viene memorizzata nel contesto di richiesta. Ad esempio:
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 = "";
if (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); }
Messaggi specifici della lingua
I messaggi specifici della lingua, quali "Grazie per aver effettuato il vostro ordine!", sono memorizzati nel file delle proprietà della raccolta delle risorse. Questi file si trovano nella seguente directory:
unità:\WebSphere\AppServer\installedApps\WC_Enterprise_App_instance_name.ear\wcstores.war\WEB-INF\classes\storedir
unità:\Program
Files\WebSphere\AppServer\installedApps\WC_Enterprise_App_instance_name.ear\wcstores.war\WEB-INF\classes\storedir
/usr/WebSphere/AppServer/installedApps/WC_Enterprise_App_instance_name.ear/wcstores.war/WEB-INF/classes/storedir
/opt/WebSphere/Appserver/installedApps/WC_Enterprise_App_instance_name.ear/wcstores.war/WEB-INF/classes/storedir
/opt/WebSphere/AppServer/installedApps/WC_Enterprise_App_instance_name.ear/wcstores.war/WEB-INF/classes/storedir
/QIBM/UserData/WebASAdv4/WAS_instance_name/installedApps/WC_Enterprise_App_instance_name.ear/wcstores.war/WEB-INF/classes/storedir
Ad esempio, se la directory del negozio è "storedir", il file properties in inglese sarà:
unità:\unità:\WebSphere\AppServer\installedApps\WC_Enterprise_App_instance_name.ear\wcstores.war\WEB-INF\classes\storedir
\infashiontext_en_US.properties.
unità:\Program
Files\WebSphere\AppServer\installedApps\WC_Enterprise_App_instance_name.ear\wcstores.war\WEB-INF\classes\storedir
/usr/WebSphere/AppServer/installedApps/WC_Enterprise_App_instance_name.ear/wcstores.war/WEB-INF/classes/storedir/infashiontext_en_US.properties.
/QIBM/UserData/WebASAdv4/WAS_instance_name/installedApps/WC_Enterprise_App_instance_name.ear/wcstores.war/WEB-INF/classes/storedir/infashiontext_en_US.properties
Il contenuto di questo file viene caricato utilizzando l'API Java java.util.ResourceBundle API dal file JSP getResource.jsp. La raccolta viene memorizzata come la variabile infashiontext. Un messaggio specifico della lingua viene visualizzato come riportato di seguito:
<title><%=infashiontext.getString("REGISTER_TITLE")%></title>
Impostazione della codifica del contenuto
La maggior parte dei moderni browser comprende i dati HTML codificati con la codifica UTF-8. Alcuni browser precedenti potrebbero, tuttavia, non comprendere la codifica originale. Un vecchio browser giapponese, ad esempio, potrebbe comprendere solo i dati HTML codificati nella codifica "Shift_JIS". Per risolvere questo problema, il negozio di esempio specifica una codifica specifica della lingua nei file delle proprietà della raccolta delle risorse come nome delle proprietà ENCODESTATEMENT. Ad esempio, il file delle proprietà dell'inglese infashiontext_en_US.properties contiene quanto segue:
ENCODESTATEMENT = text/html; charset=ISO_8859-1
Per i file JSP singoli, la codifica viene impostata utilizzando l'oggetto della richiesta JSP come descritto di seguito:
<% response.setContentType(infashiontext.getString("ENCODESTATEMENT")); %>
E' necessario effettuare l'impostazione del tipo di codifica quanto prima nel file JSP, in quanto l'intestazione HTTP viene inviata prima del contenuto HTML. Di conseguenza, se si imposta il tipo di contenuto (che viene inviato come intestazione HTTP) dopo il contenuto HTML, è possibile che non si riesca ad ottenere l'effetto desiderato. Il browser potrebbe non essere in grado di visualizzare i dati in maniera corretta.
Inclusione di intestazione, pié di pagina e riquadro sinistro di navigazione
Quasi tutte le pagine del negozio di esempio visualizzano un'intestazione (header.jsp), un pié di pagina (footer.jsp) e un riquadro sinistro di navigazione (sidebar.jsp). Tali pagine vengono incluse negli altri file JSP mediante la seguente direttiva di inclusione del tempo di esecuzione:
<% String incfile;
incfile = includeDir + "header.jsp"; %> <jsp:include page="<%=incfile%>" flush="true"/>
Se si conosce il percorso esatto dei file JSP, è possibile semplificare la procedura di inclusione utilizzando il seguente codice:
<jsp:include page="/storedir/include/header.jsp"/>
dove header.jsp si trova nella directory storedir nella root del documento dell'applicazione Web.
![]() |