我已经实现了基于jsf表单的身份验证,如下所示:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<div>My Application</div>
</h:head>
<h:body>
<form name="loginForm" method="POST" action="j_security_check">
<table>
<tr>
<td align="right"><strong>User name</strong></td>
<td><input type="text" name="j_username"/></td>
</tr>
<tr>
<td align="right"><strong>Password</strong></td>
<td><input type="password" size="25" name="j_password"/></td>
</tr>
<tr>
<td/><td/>
</tr>
<tr>
<td/>
<td><input type="submit" value="Submit"/></td>
</tr>
</table>
</form>
</h:body>
</html>
它工作正常。但是,当我想让标签不是硬编码但是从资源包加载时,就像这样:
而不是:
<td align="right"><strong>Password</strong></td>
有这个:
<td align="right"><strong>#{uiBundle['password']}</strong></td>
它不会加载预期的标签。请注意,它对我的所有其他页面都很好。我在faces-config中注册了资源包,如下所示:
<resource-bundle>
<base-name>bundles.UiBundle</base-name>
<var>uiBundle</var>
</resource-bundle>
另外,我尝试通过添加:
来加载loaccaly <f:loadBundle basename="bundles.UiBundle" var="uiBundle"/>
但它也没有帮助。我想知道为什么它不适用于登录页面以及在登录页面中进行标签翻译的方式。
提前致谢。