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}
上善若水,水利万物而不争。