深入理解Struts2国际化信息机制

时间:2022-11-02 14:58:47

这两天学习了struts2国际化信息机制,感觉很重要,所以,今天添加一点小笔记。

国际化信息机制  (三种 action范围、 package范围、 全局)

1. 全局国际化配置信息文件

全局国际化文件,对所有action 生效,任何程序都可以访问到,需要在struts.xml 配置常量 struts.custom.i18n.resources指定信息文件

页面product.jsp

?
1
2
3
4
5
6
<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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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的值

?
1
2
3
4
5
6
7
8
9
10
11
<!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 (默认的国际化文件)

注意:

深入理解Struts2国际化信息机制

1. 其中<message key="wc"/>中的key必须是messages.properties  的key值

深入理解Struts2国际化信息机制

2.messages.properties  的value值必须装换成unicode码, 使用myeclipse开发工具,内置properties editor 自动将中文转换 unicode码

2.  action范围国际化文件

 在action类 所在包 创建 action类名.properties (无需在struts.xml 配置 )

深入理解Struts2国际化信息机制

深入理解Struts2国际化信息机制

3.   package范围国际化文件

在package下面 建立 package.properties (无需在struts.xml )

深入理解Struts2国际化信息机制

深入理解Struts2国际化信息机制

4.   在jsp页面获取

在国际化 messages.properties 添加一个信息

深入理解Struts2国际化信息机制

jsp页面代码:

?
1
2
3
<h1><s:i18n name="messages">
       <s:text name="cn.wc"></s:text>
  </s:i18n></h1>

5.    在action代码获取

在messages.properties 添加国际化信息

深入理解Struts2国际化信息机制

action转发的页面jsp

?
1
2
3
<s:text name="welcome">
   <s:param>lxp</s:param>
  </s:text>

action代码:

?
1
2
3
4
5
6
7
8
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;
    
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/lxp503238/p/7151842.html?utm_source=tuicool&utm_medium=referral