Pregunta

Quiero mi página JSP para incluir otra página sobre la base de un valor en la Solicitud. Así que me puse lo siguiente:

    request.setAttribute("chosenLang", "NL");
    RequestDispatcher dispatcher = request.getRequestDispatcher(address);
    dispatcher.forward(request, response);

Y cuando llegue a la página de 'dirección' trato de hacer lo siguiente:

<c:choose>
    <c:when test="${chosenLang eq 'NL'}">
        <%@include file="/Localization/NL_Localization.jsp" %>
    </c:when>
    <c:otherwise>
        <%@include file="/Localization/EN_Localization.jsp" %>
    </c:otherwise>
</c:choose>

Por lo tanto, sé que el chosenLang encuentra el atributo 'NL', porque cuando cambio cuál está entre las etiquetas a <c:out value="Test" /> funciona, veo la prueba de conseguir mencionado en mi página, y cuando pongo 2 valores de allí, uno para NL y otro para algún otro idioma, cambia aswell ..

El verdadero error, sin embargo, viene cuando intento utilizar una cadena que se define en uno de los archivos Localization.jsp, así:

<%
String welcomeStr="this is defining String variable";
%>

Y cuando llamo a que en algún lugar secuencia abajo en mi página como

 <%=welcomeStr%>

mi IDE duerma avisarme que hay algo mal. Pero cuando me compilar y ejecutar me sale el siguiente error:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 48 in the jsp file: /index3.jsp
welcomeStr cannot be resolved
45:                     <li>My courses</li>
46:                     <li>My messages [1]</li>
47:                     <li>My details</li>
48:                     <li> <%=welcomeStr%></li>
49:                 </ul>
50:             </div>
51:             <div id="menuHolder">

Por lo tanto, lo que me estoy perdiendo aquí? O se hace esto más conveniente de otra manera?

Gracias de antemano!

¿Fue útil?

Solución

Trate de buscar en ResourceBundle . Lo que esto le permitirá hacer es escribir 1 archivo JSP, y todo el texto de la página será controlado de archivos de propiedades. Esto evitará tener que escribir la lógica en el archivo JSP para controlar la lengua.

Su página JSP puede leer archivos de propiedades, cada uno de los cuales tendrá su redacción para diferentes idiomas / países.

Hay un montón de tutoriales por ahí sobre cómo usar ResourceBundle. Aquí está uno de Oracle

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top