PDA

View Full Version : [Java] JSTL e internazionalizzazione


UnknownSoldier
10-12-2008, 19:03
Salve a tutti. Ho un problemuccio con JSTL e internazionalizzazione... dunque, questa è la mia JSP:


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<c:if test = "${param.language == 'en'}">
<fmt:setLocale value = "en" scope = "session"/>
</c:if>
<c:if test = "${param.language == 'it'}">
<fmt:setLocale value = "it" scope = "session"/>
</c:if>

<fmt:setBundle basename = "labels" var = "bundle" scope = "session"/>
<c:set var = "language" value = "${bundle.locale.language}"/>

<form action = "i18n.jsp" method = "get">
<p><input type = "radio" value = "en" ${language == 'en' ? 'checked' : '' }><fmt:message key = "en"/></p>
<p><input type = "radio" value = "it" ${language == 'it' ? 'checked' : ''}><fmt:message key = "it"/></p>
<input type = "submit" value = "<fmt:message key = "send"/>">
</form>
</body>
</html>


E i due file properties inseriti in WEB-INF/classes:

labels_en.properties:

en=English
it=Italian
send=Send


labels_it.properties:

en=Inglese
it=Italiano
send=Invia


Ma il risultato della pagina è che <fmt:message> non mi stampa il testo localizzato, ma stampa la chiave compresa tra punti interrogativi... where is the problem? o_O