Páginas de la tienda de ejemplo: técnicas de implementación comunes

La mayoría de las páginas de la tienda de ejemplo utilizan las siguientes técnicas de implementación. Esta página utiliza la tienda InFashion como ejemplo pero puede aplicarse a todas las tiendas de ejemplo. Para obtener más información sobre las técnicas específicas de una página individual, consulte el archivo de referencia de dicha página.

Contenido multicultural

Las páginas de la tienda de ejemplo también se utilizan para mostrar contenido multicultural. Es decir, el mismo conjunto de páginas puede utilizarse para diferentes entornos nacionales. La mayor parte del código que permite una visualización multicultural está en getResource.jsp. El archivo getResource.jsp efectúa lo siguiente:

Para que un archivo JavaServer Page pueda acceder a las variables anteriores, getResource.jsp debe incluirse en el archivo JavaServer Page, utilizando la acción include en tiempo de compilación.

<%@ include file="include/getResource.jsp"%>

Dado que getResource.jsp se incluye prácticamente en todos los archivos JavaServer Page de ejemplo, puede ejecutarse varias veces en una sola petición. Para evitar la duplicación del trabajo, la mayor parte de la información que recupera esta página se almacena dentro del contexto de la petición. Por ejemplo:

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

Mensajes específicos de cada idioma

Los mensajes específicos de cada idioma como, por ejemplo, "Gracias por hacer su pedido" se almacenan en los archivos de propiedades del paquete de recursos. Estos archivos se encuentran en el directorio siguiente:

unidad:\WebSphere\AppServer\installedApps\WC_Enterprise_App_nombre_instancia.ear\wcstores.war\WEB-INF\classes\dirtienda
unidad:\Archivos de programa\WebSphere\AppServer\installedApps\WC_Enterprise_App_nombre_instancia.ear\wcstores.war\WEB-INF\classes\dirtienda
/usr/WebSphere/AppServer/installedApps/WC_Enterprise_App_nombre_instancia.ear/wcstores.war/WEB-INF/classes/dirtienda
/opt/WebSphere/Appserver/installedApps/WC_Enterprise_App_nombre_instancia.ear/wcstores.war/WEB-INF/classes/dirtienda

/opt/WebSphere/AppServer/installedApps/WC_Enterprise_App_nombre_instancia.ear/wcstores.war/WEB-INF/classes/dirtienda
/QIBM/UserData/WebASAdv4/nombre_instancia_WAS/installedApps/WC_Enterprise_App_nombre_instancia.ear/wcstores.war/WEB-INF/classes/dirtienda

Por ejemplo, si el directorio de su tienda es "dirtienda", el archivo de propiedades en español será: 
  unidad:\WebSphere\AppServer\installedApps\WC_Enterprise_App_nombre_instancia.ear\wcstores.war\WEB-INF\classes\dirtienda
\infashiontext_es_ES.properties.
unidad:\Archivos de programa\WebSphere\AppServer\installedApps\WC_Enterprise_App_nombre_instancia.ear\wcstores.war\WEB-INF\classes\dirtienda
/usr/WebSphere/AppServer/installedApps/WC_Enterprise_App_nombre_instancia.ear/wcstores.war/WEB-INF/classes/dirtienda/infashiontext_es_ES.properties.
/QIBM/UserData/WebASAdv4/nombre_instancia_WAS/installedApps/WC_Enterprise_App_nombre_instancia.ear/wcstores.war/WEB-INF/classes/dirtienda/infashiontext_es_ES.properties

El contenido de este archivo se carga utilizando la API de Java java.util.ResourceBundle del archivo JSP getResource.jsp. El paquete se almacena como la variable infashiontext. Un mensaje específico del idioma se visualiza de la siguiente manera:

<title><%=infashiontext.getString("REGISTER_TITLE")%></title>

Establecer la codificación del contenido

La mayor parte de los navegadores modernos comprenden los datos HTML codificados en codificación UTF-8. Sin embargo, algunos de los navegadores antiguos sólo comprenden la codificación nativa. Por ejemplo, es posible que un navegador japonés antiguo sólo comprenda los datos HMTL codificados en codificación "Shift_JIS". Para solucionar este problema, la tienda de ejemplo especifica la codificación específica del idioma en los archivos de propiedades del paquete de recursos como el nombre de propiedad ENCODESTATEMENT. Por ejemplo, el archivo de propiedades en inglés infashiontext_en_US.properties contiene la entrada siguiente:

ENCODESTATEMENT = text/html; charset=ISO_8859-1

Para los archivos JSP individuales, la codificación se establece utilizando el objeto de petición JSP como se muestra a continuación:

<% response.setContentType(infashiontext.getString("ENCODESTATEMENT")); %>

El tipo de codificación se ha de establecer en el inicio del archivo JSP, tanto como sea posible, ya que la cabecera HTTP se envía antes que cualquier contenido HTML. Por lo tanto, si establece el tipo de contenido (que se envía como cabecera HTTP) después de cualquier contenido HTML, es posible que el efecto no sea el deseado. Y es posible que el navegador no pueda mostrar los datos correctamente.

Inclusión de la cabecera, el pie de página y el marco de navegación izquierdo

Prácticamente todas las páginas de la tienda de ejemplo muestran las páginas de cabecera (header.jsp), pie de página (footer.jsp) y marco de navegación izquierdo (sidebar.jsp).  Estas páginas se incluyen en los demás archivos JSP utilizando la siguiente directiva include en tiempo de ejecución:

<% String incfile;

incfile = includeDir + "header.jsp"; %> <jsp:include page="<%=incfile%>" flush="true"/>

Si conoce la ubicación exacta de los archivos JSP, puede simplificar el proceso de inclusión utilizando lo siguiente:
<jsp:include page="/dirtienda/include/header.jsp"/>

donde header.jsp está situado en el directorio dirtienda bajo el directorio raíz de documentos de la aplicación web.

Conceptos relacionados

Tareas relacionadas

Referencia relacionada

IBM copyright