深入理解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; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- 使用RNN预测股票价格系列二
- 微软 WCF的几种寄宿方式,寄宿IIS、寄宿winform、寄宿控制台、寄宿Windows服务
- 深度学习框架之一:Theano | Lasagne简单教程
- 有趣的应用 | 使用RNN预测股票价格系列一
- 通过深度学习实现安全帽佩戴的检测
- python及numpy,pandas易混淆的点
- 深度学习中的损失函数总结以及Center Loss函数笔记
- TF使用例子-LSTM实现序列标注
- 图像学习-验证码识别
- ResNet原理及其在TF-Slim中的实现
- 理工男的文科梦 —— LSTM深度学习写春联
- keras学习笔记-黑白照片自动着色的神经网络-Alpha版
- keras学习笔记-黑白照片自动着色的神经网络-Beta版
- Python 设计模式初探
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- java如何将String转换为Int
- java中如何将数组转换为List
- 从一个多层嵌套循环中直接跳出
- 如何给3个布尔变量,当其中有2个或者2个以上为true才返回true
- 比较java枚举成员使用equal还是==
- java如何将String转换为enum
- Markdown极简入门教程(1)—为什么要学习Markdown
- Markdown极简入门教程(2)—斜体和粗体
- 标题—Markdown极简入门教程(3)
- 链接—Markdown极简入门教程(4)
- 某企业授权渗透报告
- 图片—Markdown极简入门教程(5)
- 列表—Markdown极简入门教程(7)
- 段落—Markdown极简入门教程(8)
- 开闭原则