首先创建好Struts2 项目 下面示例
在Action同一级目录下创建 package.properties 和 package_es.properties。
package.properties 代码
Lopro.message= English building !!
requiredstring = ${getText(fieldName)} is required.
package_es.properties代码
Lopro.message= \u00A1Struts est? bien\! ... requiredstring =${getText(fieldName)} se requiere.
然后Action里面
String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
在执行Action中的方法中值需要 setMessage(getText(MESSAGE));
然后再页面就可以直接取值了
<s:property value="message"/>
<li>
<s:url id="url" action="Login">
<s:param name="request_locale">en</s:param>
</s:url>
<s:a href="%{url}">English</s:a>
</li>
<li>
<s:url id="url" action="Login">
<s:param name="request_locale">es</s:param>
</s:url>
<s:a href="%{url}">Espanol</s:a>
</li>
</ul>
点击es的时候 它首先找叫Login的Action目录下的资源文件,然后Action里面找key为Lopro.message的值
然后进行set方法。
*****MESSAGE 是资源文件的key ,getText(MESSAGE)是这个key的值,读取那个资源文件是Struts2 封装好的
页面会在<s:param name="request_locale">es</s:param>中取出request_locale 属性的值。然后去找Action下的资源文件,匹配key--value.
requiredstring =${getText(fieldName)} se requiere.
getText(MESSAGE)设置值。这样就简单实现了国际化