关于struts Validator在多模块下多国语言资源访问的问题解决之道(一)struts Validator下使用多模块的多国语言资源
来源:互联网 发布:魔兽数据库手机版 编辑:程序博客网 时间:2024/06/02 15:14
struts Validator是一个非常优秀的验证框架,但是在使用过程中我发现它对Struts多模块下多国语言资源访问很不到位。
一、struts Validator下使用多模块的多国语言资源
在struts中如果有一个模块modelA,我们给其一个单独的Struts-config配置文件struts-config-modelA.xml,其内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans>
<form-bean name="ordersForm"
type="modelA.OrdersForm" />
</form-beans>
<global-exceptions />
<global-forwards></global-forwards>
<action-mappings>
<action name="ordersForm"
path="/webapp/orders/ordersAction" scope="request"
type="modelA.OrdersAction">
</action>
</action-mappings>
<message-resources key="business"
parameter="modelA.BusinessResources" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/config/test-validation.xml,
/WEB-INF/config/validation.xml" />
</plug-in>
</struts-config>
其中我们定义了一个简单得form、Action以及一个key为business的多国语言资源,并注册了验证框架,它使用/WEB-INF/config/test-validation.xml文件记录要验证的form的配置。
然后我们要在test-validation.xml定义ordersForm:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<formset>
<form name="ordersForm">
<field property="orderName" depends="required">
<arg0 key="orders.orderName" />
<msg key="errors.required" name="required" bundle="business"/>
</field>
<field property="orderDes" depends="required">
<arg0 key="orders.orderDes" />
<msg key="errors.required" name="required" bundle="business"/>
</field>
<field property="addUser" depends="required">
<arg0 key="orders.addUser" />
<msg key="errors.required" name="required" bundle="business"/>
</field>
<field property="addTime" depends="required">
<arg0 key="orders.addTime" />
<msg key="errors.required" name="required" bundle="business"/>
</field>
</form>
</formset>
</form-validation>
大家可以看到在每个field中我们多定义了一个<msg key="errors.required" name="required" bundle="business"/>,这个就是定义当前模块的required验证绑定到哪一个资源文件,这里我们绑定到business。
最后我们要在jsp中为每一个字段定义验证输出标记:
<html:errors property="orderName" bundle="business"/>
这样就可以实现多个模块下的独立多国语言配置。
大家也看到了,上面的步骤虽然不是很复杂,但每一个field都要定义一次msg,是一件多么烦人的事情啊。我希望解除每一个field中的msg,转而在struts-config配置中定义ValidatorPlugin的时候注册资源绑定就可以了。因此我决定改造Validator。且听下回分解:)
- 关于struts Validator在多模块下多国语言资源访问的问题解决之道(一)struts Validator下使用多模块的多国语言资源
- struts多国语言支持
- 字符串资源多国语言版本的出错问题
- 字符串资源多国语言版本的出错问题
- 字符串资源多国语言版本的出错问题
- 多国语言资源本地化
- Struts实现多国语言切换
- Struts实现多国语言切换
- Struts 之旅 - 多国语言
- Struts实现多国语言切换
- Struts实现多国语言切换
- 多国语言的互相转换(纯资源DLL)
- c# 多国语言资源的快速生成
- 多国语言编程之资源转换
- android多国语言资源命名
- Struts Validator的使用
- Struts Validator的使用
- Struts Validator的使用
- .net+mysql的相关文章
- object manager
- 这两者需要映射到相同的服务器位置
- CORBA技术探索起步
- 通过反汇编理解 C++语言实质探讨
- 关于struts Validator在多模块下多国语言资源访问的问题解决之道(一)struts Validator下使用多模块的多国语言资源
- 当一个管理者两个月以来的总结
- 银行家算法
- 自己比较喜欢的CCommon类
- 我所用的软件
- Asp.net页面之间通过脚本传递数据
- Blog发布新版本 beta6 改善原有系统,增加新功能
- 测试
- 今天开始关注CSDN