在JSP Web应用程序中放置配置属性文件的位置?

时间:2014-06-23 09:44:41

标签: jsf tomcat properties

我读了这个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

当我跑步时,它只显示输入文本,而不是标题或其他文本。可能是什么原因?

我也改变了很多次文件的名称。消息,消息,消息和声明但仍然无效。

2 个答案:

答案 0 :(得分:0)

你可以在JSF中为i18n做三件事: 在这种情况下,文件 messages.properties 必须放在名为: src / your / package / name / 的包中。根据您的需要进行更改。

  1. 在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>
    
  2. 或使用format-taglib加载包:

    <f:loadBundle basename="your.package.name.messages" var="msgs" />
    
  3. 或者使用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"/>