如何修改<s:textfield>以从Applicationresources.properties文件中获取值</s:textfield>

时间:2012-01-18 10:43:55

标签: jsp struts2 java-ee-6 struts-html

我正在开发一个简单的GUI,我希望从ApplicationResources.properties文件中获取用户名值。 我的文件包含以下两行:

label.username= Username
label.password=Password

我使用的JSP包含struts 2标签包含以下代码段:

<s:textfield cssClass="login-inp" name="username" key="label.username" size="20" />

但是当我运行我的项目时,我看到 label.username 表示未读取属性文件中的值。 我错过了什么吗?如何解决这个问题呢 ?请帮助

提前致谢

2 个答案:

答案 0 :(得分:3)

我不确定您在何处以及如何定义properties文件但在搜索资源包时struts2以特定方式搜索它们

  1. ActionClass.properties。
  2. BaseClass.properties(一直到Object.properties)
  3. Interface.properties(每个接口和子接口)
  4. ModelDriven的模型(如果实现ModelDriven),模型对象从1重复
  5. package.properties(类所在目录,每个父目录一直到根目录)
  6. 搜索i18n消息密钥层次结构本身
  7. webwork.properties中定义的全局资源属性(webwork.custom.i18n.resources)
  8. 请参阅文档了解详情/internationalization

    此外,可以在textfield标签中使用Struts 2键属性来指示框架对文本字段的名称和标签属性使用什么值。而不是直接提供这些属性及其值,您只需使用key属性即可。

    因此要么使用name =“username”key =“label.username”。

    只需查看官方文档,了解这项工作的详细信息以及框架如何搜索属性文件 message-resource-files

答案 1 :(得分:1)

在第一个包定义的顶部,在struts.xml文件中添加以下行。

<constant name="struts.custom.i18n.resources" value="ApplicationResources" />

OR

在src文件夹中添加struts.properties文件。并保留下面的财产。

struts.custom.i18n.resources=ApplicationResources