Struts2国际化资源文件、类型转换、输入校验的配置文件约定总结

Struts2的各种约定规则实在很难记忆,现在总结一下。


一、国际化资源文件的basename

1. 全局级别:配置在struts.xml的<constant name="struts.custom.i18n.resources" value="YOUR_BASENAME"/>

2. 包级别: 放在某个package下,且basename固定为package, 如package.properties, package_zh_CN.properties

3. Action级别: 与Action类放在一起,且basename为Action名, 如LoginAction对应的资源文件为LoginAction.properties, LoginAction_en_US.properties

4. 临时级别: basename任意,放在classpath下, 仅用于JSP: <s:i18n name="TEMP_BASENAME">


二、类型转换

1. 全局级别:

(1) 注册文件:文件名固定为xwork-conversion.properties,内容为<待转换属性的全限定名>=<转换类的全限定名>

(2) 转换错误提示: 在全局级别的资源文件中添加xwork.default.invalid.fieldvalue=my own {0} conversion global error

2. Action级别:

(1) 注册文件:文件名为<Action类名>-conversion.properties,内容为<Action属性名>=<转换类的全限定名>

(2) 转换错误提示:在Action级别的资源文件中添加invalid.fieldvalue.<Action属性名>=my own xxx conversion local error (其中<Action属性名>可以为DTO,通过"."导航到其关联的属性)


三、输入校验:

1. 校验配置文件(与Action类同路径):

<actionClass>-validation.xml

<actionClass>-<actionAlias>-validation.xml(适合多逻辑的Action, <actionAlias>对应struts.xml中<action>标签的name属性值)

2. 校验错误提示:

在Action级别/包级别/全局级别的资源文件中配置<msgkey>=<msgvalue>,校验配置文件错误提示设置为<message key="<msgkey>">。

<msgvalue>可以包含校验器的参数,如:

<field-validator type="date">
    <param name="min">1900-01-01</param>
    <param name="max">2050-02-21</param>
    <message>年纪必须在${min}到${max}之间</message>
</field-validator>

3. 校验文件的搜索规则:

假设ChildAction继承自BaseAction,则Struts2会以以下固定顺序搜索:

(1) BaseAction-validation.xml

(2) BaseAction-别名-validation.xml

(3) ChildAction-validation.xml

(4) ChildAction-别名-validation.xml

(即使前面的校验文件能搜索到,仍然会继续搜索下面的校验文件。如果有冲突,则下面校验规则会取胜)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值