我读了这个Where to place and how to read configuration resource files in servlet based application?以及更多,但我没有java类,我只有xhtml页面来从属性获取消息。我将属性fcile放入webcontent,src,src中的包,meta inf但它们都没有工作。
xhtml页面:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>#{msgs.windowTitle}</title>
</head>
<body>
<h:form>
<h:panelGrid columns="2" columnsClasses="evenColumns, oddColumns">
#{msgs.namePrompt}
<h:inputText/>
#{msgs.PasswordPrompt}
<h:inputSecret id="password" />
#{msgs.ConfirmPasswordPrompt}
<h:inputSecret id="passwordConfirm"/>
</h:panelGrid>
<h:commandButton type="button" value="Submit" onclick="checkPassword(this.form)" />
</h:form>
</body>
</html>
facesconfig:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
<application>
<message-bundle>messages</message-bundle>
</application>
</faces-config>
checkPassword.js(我放入webcontent,我没有时间找到放js的地方,我首先想找出属性)
/**
*
*/
function checkPassword(form){
var password = form[form.id+":passwordConfirm"].value;
var passwordConfirm = form[form.id+":password"].value;
if(password==passwordConfirm){
form.submit();
}
else{
alert("Wrong");
}
}
我使用的是eclipse kepler jsf 2.2。 Apache tomcat 7.0.54
当我跑步时,它只显示输入文本,而不是标题或其他文本。可能是什么原因?
我也改变了很多次文件的名称。消息,消息,消息和声明但仍然无效。
答案 0 :(得分:0)
你可以在JSF中为i18n做三件事: 在这种情况下,文件 messages.properties 必须放在名为: src / your / package / name / 的包中。根据您的需要进行更改。
在faces-context.xml中定义消息文件:
<locale-config>
<default-locale>en</default-locale>
<supported-locale>de</supported-locale>
<supported-locale>cn</supported-locale>
</locale-config>
<resource-bundle>
<base-name>your.package.name.messages</base-name>
<var>msgs</var>
</resource-bundle>
或使用format-taglib加载包:
<f:loadBundle basename="your.package.name.messages" var="msgs" />
或者使用ResourceBundle类创建一个bean yourselft。
答案 1 :(得分:0)
尝试把它放在faces-config:
中 <application>
<resource-bundle>
// try to put inside main/java/resources
<base-name>com.x.messages</base-name>
<var>msg</var>
</resource-bundle>
</application>
然后对于特殊包,您可以为视图指定一个包:
f:loadBundle basename="com.x.messages" var="msg"/>