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

 更新时间:2017年07月12日 10:12:38   作者:晓梦蝶  
本篇文章主要介绍了深入理解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;
    
  }
}

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

相关文章

  • 在Java中如何比较两个对象浅析

    在Java中如何比较两个对象浅析

    在工作中我们经常会遇到这样的需求——比较两个对象是否相等,如果不相等的话,取出不相等的字段,这篇文章主要给大家介绍了关于在Java中如何比较两个对象的相关资料,需要的朋友可以参考下
    2021-11-11
  • Java Spring Boot实战练习之单元测试篇

    Java Spring Boot实战练习之单元测试篇

    单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等
    2021-10-10
  • java算法之二分查找法的实例详解

    java算法之二分查找法的实例详解

    这篇文章主要介绍了java算法之二分查找法的实例详解的相关资料,这里提供简单实例帮助大家学习理解这部分内容,需要的朋友可以参考下
    2017-08-08
  • Java如何获取@TableField,@TableName注解的值

    Java如何获取@TableField,@TableName注解的值

    这篇文章主要介绍了Java如何获取@TableField,@TableName注解的值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 使用Spring boot标记一个方法过时

    使用Spring boot标记一个方法过时

    这篇文章主要介绍了使用Spring boot标记一个方法过时,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java基于注解实现的锁实例解析

    Java基于注解实现的锁实例解析

    这篇文章主要介绍了Java基于注解实现的锁实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • idea以任意顺序debug多线程程序的具体用法

    idea以任意顺序debug多线程程序的具体用法

    在idea中使用debug可以让多个线程以任意顺序执行,接下来通过本文给大家介绍idea以任意顺序debug多线程程序的具体用法,需要的朋友参考下吧
    2021-08-08
  • Spring中@PropertySource注解使用场景解析

    Spring中@PropertySource注解使用场景解析

    这篇文章主要介绍了Spring中@PropertySource注解使用场景解析,@PropertySource注解就是Spring中提供的一个可以加载配置文件的注解,并且可以将配置文件中的内容存放到Spring的环境变量中,需要的朋友可以参考下
    2023-11-11
  • Java消息队列RabbitMQ之消息回调详解

    Java消息队列RabbitMQ之消息回调详解

    这篇文章主要介绍了Java消息队列RabbitMQ之消息回调详解,消息回调,其实就是消息确认(生产者推送消息成功,消费者接收消息成功)  , 对于程序来说,发送者没法确认是否发送成功,需要的朋友可以参考下
    2023-07-07
  • Java Socket模拟实现聊天室

    Java Socket模拟实现聊天室

    这篇文章主要为大家详细介绍了Java Socket模拟实现聊天室,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07

最新评论