我做了一个JSTL JSP i18N,遵循本指南How to internationalize a Java web application?然而,我无法设置默认语言,我用< c:set>来设置默认的语言,每次body load(onload)但它当我刷新页面时随机显示语言。JSTL JSP默认语言
您能否给我默认语言的想法?
<c:set var="language" value="${not empty param.language ? param.language : not empty language ? language : pageContext.request.locale}" scope="session" />
<fmtlang:setLocale value="${language}" />
<fmtlang:setBundle basename="com.example.i18n.text" var="lang" />
<script>
function setFR()
{
<c:set var="language" scope="session" value="fr"/>
}
function setEN()
{
<c:set var="language" scope="session" value="en"/>
}
function setES()
{
<c:set var="language" scope="session" value="es"/>
}
</script>
<html lang="${language}">
<body onload="setFR()">
<div id="all">
<img src="img/contentlogin.jpg"/>
<div id="language">
<form id="formLang" name="formlang">
<button type="submit" style="border: 0; background: transparent" id="language" name="language" value="fr" ${language == 'fr' ? 'selected' : ''}>
<img src="icon/fr.png" width="32" height="32" alt="submit" />
</button>
<button type="submit" style="border: 0; background: transparent" id="language" name="language" value="en" ${language == 'en' ? 'selected' : ''}>
<img src="icon/us.png" width="32" height="32" alt="submit" />
</button>
<button type="submit" style="border: 0; background: transparent" id="language" name="language" value="es" ${language == 'es' ? 'selected' : ''}>
<img src="icon/es.png" width="32" height="32" alt="submit" />
</button>
</form>
</div>
<form id="form1" name="form1" method="post" action="<%=appPath%>/loginAction">
<div id="info">
<span><fmtlang:message key="login.span.pleaseenterinfo" bundle="${lang}"/></span>
</div>
<div id="username_label">
<span><fmtlang:message key="login.label.username" bundle="${lang}"/></span>
</div>
<div id="username">
<input type="text" maxlength="15" STYLE="color: #3c7033; font-family: Verdana; font-weight: bold; font-size: 12px; background-color: #ebf7ca;" name="username" id="username" size="22">
</div>
<div id="password_label">
<span><fmtlang:message key="login.label.password" bundle="${lang}"/></span>
</div>
<div id="password">
<input type="password" STYLE="color: #3c7033; font-family: Verdana; font-weight: bold; font-size: 12px; background-color: #ebf7ca;" id ="password" name="password" size="22">
<input type="hidden" id ="language" name="language" value=<c:out value="${language}"/> size="22">
</div>
<div id="forgetpassword">
<span><fmtlang:message key="login.span.forget" bundle="${lang}"/></span>
</div>
<div id="forcea">
<img src="img/forceacopyright.png"/>
</div>
<div id="buttonlogin">
<button type="submit" style="border: 0; background: transparent" >
<img src="img/login.png" alt="12" width="101" height="94" border="0" />
</button>
</div>
<div id="wronguandp">
<%if(message!=null){ %>
<b><span style="color: red;"> <fmtlang:message key="login.wrong.display" bundle="${lang}"/></span></b>
<%}%>
</div>
</form>
</div>
</body>
你能告诉你的代码。 – NINCOMPOOP
向我们显示您的代码。告诉我们你期望它做什么,以及它做什么。你的问题没有意义:你在服务器端执行的JSTL与在客户端执行的JavaScript混淆。 –
你完全误解了JSP和JavaScript的作用。 JSP是一个HTML代码生成器,JavaScript是该HTML代码的一部分。在浏览器中右键单击页面,然后执行*查看源代码*。你看到了什么?没错,没有一行JSP代码!只是摆脱所有的JS代码。他们没有做任何有用的事情。 – BalusC