我正在开发一个简单的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,这表明属性文件中的值没有被读取。。我是不是错过了什么?如何解决这个问题?请帮助
提前感谢
我不确定您在哪里以及如何定义properties
文件,但在搜索资源捆绑包时,struts2会以特定的方式搜索它们
- ActionClass.properties
- BaseClass.properties(一直到Object.properties)
- Interface.properties(每个接口和子接口)
- ModelDriven的模型(如果实现ModelDriven),对于模型对象,从1开始重复
- package.properties(类所在的目录以及一直到根目录的每个父目录)
- 搜索i18n消息密钥层次结构本身
- 在webwork.properties中定义的全局资源属性(webwork.custom.i18n.resources)
有关详细信息/国际化,请参阅文档。
此外,Struts2键属性可以在textfield标记中使用,以指示框架为textfield的名称和标签属性使用什么值。您可以直接使用键属性,而不是直接提供这些属性及其值。
因此,要么使用name="username"key="label.username".
只需查看官方文件,了解详细的工作原理以及框架如何搜索属性文件消息资源文件
在struts.xml文件中的第一个包定义的顶部添加以下行。
<constant name="struts.custom.i18n.resources" value="ApplicationResources" />
或
在src文件夹中添加struts.properties文件。并保留以下属性。
struts.custom.i18n.resources=ApplicationResources