深入理解Struts2国际化信息机制
这两天学习了struts2国际化信息机制,感觉很重要,所以,今天添加一点小笔记。
国际化信息机制 (三种 action范围、 package范围、 全局)
1. 全局国际化配置信息文件
全局国际化文件,对所有action 生效,任何程序都可以访问到,需要在struts.xml 配置常量 struts.custom.i18n.resources指定信息文件
页面product.jsp
<s:fielderror/> <form action="${pagecontext.request.contextpath }/product_add.action" method="post"> 商品名:<input type="text" name="name"/><br/> 价格:<input type="password" name="price"/><br/> <input type="submit" value="登录"/> </form>
编写productaction
public class productaction extends actionsupport { private static final long serialversionuid = 1l; private string name; private double price; public string add(){ system.out.println(name+"---------"+price); return success; /* get(),set()方法略去................. */ } }
添加校验信息:(对action的方法进行校验 productaction-product_add-validation.xml
)
productaction-product_add-validation.xml
其中product_add
是struts.xml中action标签中的name的值
<!doctype validators public "-//apache struts//xwork validator 1.0.3//en" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> <!-- 校验商品 --> <field name="name"> <field-validator type="requiredstring"> <message key="wc"/> </field-validator> </field> </validators>
新建国际化信息文件 src
下 messages.properties
(默认的国际化文件)
注意:
1. 其中<message key="wc"/>中的key必须是messages.properties 的key值
2.messages.properties 的value值必须装换成unicode码, 使用myeclipse开发工具,内置properties editor 自动将中文转换 unicode码
2. action范围国际化文件
在action类 所在包 创建 action类名.properties
(无需在struts.xml 配置 )
3. package范围国际化文件
在package下面 建立 package.properties
(无需在struts.xml )
4. 在jsp页面获取
在国际化 messages.properties 添加一个信息
jsp页面代码:
<h1><s:i18n name="messages"> <s:text name="cn.wc"></s:text> </s:i18n></h1>
5. 在action代码获取
在messages.properties 添加国际化信息
action转发的页面jsp
<s:text name="welcome"> <s:param>lxp</s:param> </s:text>
action代码:
public class product2action extends actionsupport { private static final long serialversionuid = 1l; public string add(){ system.out.println(this.gettext("welcome",new string[]{"action"})); return success; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。