struts系列:校验(三)国际化
一、设置国际化资源标识
struts可以通过request_locale参数来进行国际化参数设置
例如页面可以通过如下链接完成语言切换:
<s:a href="locale.action?request_locale=en_US" >English</s:a>
<s:a href="locale.action?request_locale=zh_CN" >Chinese</s:a>
这个参数传递到action后,存放在ActionContext.getContext().getSession().entrySet()中,key为WW_TRANS_I18N_LOCALE,
这里有一个小疑问:这个value用ActionContext.getContext().getSession().get("WW-TRANS-I18N-LOCALE")方法获取不到,但是遍历这个entrySet的时候确实是存在的。
二、检验信息国际化
和其他国际化资源是一样的,
资源文件名_en_US.properties
form.user.null=user name can not be null
资源文件名_zh_CN.properties
form.user.null=用户名不能为空
三、校验文件
1. 常规描述
<field name="name">
<!--指定使用的验证器,此处选择非空验证 -->
<field-validator type="requiredstring">
<!--验证失败的错误提示信息 -->
<message key="form.user.null"></message>
</field-validator>
</field>
2. 范围参数描述
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">8</param>
<message key="form.password.length"/>
</field-validator>
2.1 此时对应国际化文件的写法如下:
form.password.length=\u5BC6\u7801\u957F\u5EA6\u4E0D\u80FD\u5C11${1} ~ ${2}\u4F4D
form.password.length=password length is ${1} ~ ${2}
struts系列:校验(三)国际化的更多相关文章
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级) 企业库提供了一个很强大的验证应用程序模 ...
- CRL快速开发框架系列教程三(更新数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...
- javascript面向对象系列第三篇——实现继承的3种形式
× 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...
- 深入理解javascript函数系列第三篇——属性和方法
× 目录 [1]属性 [2]方法 前面的话 函数是javascript中的特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本 ...
- 深入理解javascript作用域系列第三篇——声明提升(hoisting)
× 目录 [1]变量 [2]函数 [3]优先 前面的话 一般认为,javascript代码在执行时是由上到下一行一行执行的.但实际上这并不完全正确,主要是因为声明提升的存在.本文是深入理解javasc ...
- solr与.net系列课程(三)solr连接数据库
solr与.net系列课程(三)solr连接数据库 上一章直接讲述的配置文件把大部分人看的很迷惑,大家都想听的是solr到底是怎么用的,好,这一节我们就开始链接数据库,首先讲一下连接之前都要配置哪些 ...
- Android Studio系列教程三--快捷键
Android Studio系列教程三--快捷键 2014 年 12 月 09 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang.com/ ...
- NGUI系列教程三
接下来我们再来看Progress Bar和Slider,对比参数我们可以发现,Progress Bar和slider的明显区别在于slider多一个Thumb选项,这里的Thumb就是我们拖动的时候点 ...
- Wix打包系列(三)自定义Action(Custom Action)
原文:Wix打包系列(三)自定义Action(Custom Action) 3.1 关于Action 我们已经知道如何生成具有标准安装界面的安装程序了,Windows Installer按照我们的界面 ...
随机推荐
- javascript64位加密
var base64 = new Object(); base64.settings = { char: "+/", pad: "=", ascii: fals ...
- 简单实用的extend对象合并
/** * 合并对象 * 示例:o = extend({ a: 'a' }, o); */ function extend(s, t) { if (!s) { return {}; } if (!s) ...
- 微信小程序 - 支持html空格(提示)
仅限于text标签,decode参数:官方api.
- h5画图表
折线: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&q ...
- server.xml引入子文件配置(tomcat虚拟主机)[转]
在配置tomcat虚拟主机时候,如何每一个虚拟主机写成单独文件,server.xml包含这些子文件? 如以下<OneinStack>中,添加JAVA环境虚拟主机后tomcat配置文件详情: ...
- tshark使用说明
tshark -h TShark (Wireshark) (v2.-gf42a0d2b6c) Dump and analyze network traffic. See https://www.wir ...
- Java多线程之Future与FutureTask
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6561154.html 一:Future 在使用实现Callable创建线程时,call()方法是有返回值的. ...
- C#程序实现窗体的最大化/最小化
C#程序实现窗体的最大化/最小化 http://blog.csdn.net/jiangqin115/article/details/41251215 private void button1_Clic ...
- UML - EA 序列图
序列图中的 Fragment 的类型(Loop.Opt.Par和Alt) (还有: ) 序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向 ...
- 《数字图像处理原理与实践(MATLAB版)》一书之代码Part5
<数字图像处理原理与实践(MATLAB版)>一书之代码Part5 本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part5.辑录该书第225至第280页之代 ...