您的位置:首页 > 编程语言 > Java开发

[搬家文]struts2主要的配置文件提要[2]

2008-08-13 20:06 253 查看
struts.properties 放在src下 可免,通过struts.xml里面的constant元素配置

l 一些常用的属性:

struts.custom.properties :用户自定义属性文件,多个用逗号隔开

struts.devMode:是否处于开发模式,开发阶段可设true。

struts.i18n.reload:每次请求到达重新加载资源文件,开发阶段设true。

struts.ui.theme: 默认视图主题,默认为xhtml

struts.configuration.xml.reload :指定struts.xml改变后自动重新加载。默认false。

struts.custom.i18n.resources:指定struts2国际化资源文件。

struts.configuration.files:指定struts2默认加载的配置文件,该属性默认值为struts-default.xml,struts-plugin.xml,struts.xml

messageResource_language_COUNTRY.properties 与action同目录 本地化信息配置文件

XXXAcion-conversion.properties 与action同目录 局部类型转换器配置

aaaa(action中的属性名) = package.xxxconverter

xwork-conversion.properties src文件夹下 全局类型转换器配置

ttt(类型) = package.xxxConvertor

Element_xxx=xxxType 对于没有泛型支持的list,collection

actionname-validation.xml 和action同目录 action对应的验证配置,actionname 为action的类名

xwork-validation.xml 放在src下 全局验证

关于验证有一点需留意,默认拦截器栈, conversionError拦截器配置都在validation拦截器之前。所以,在进行验证之前,conversionError拦截器会先调用转换器对页面上的属性进行转换,若转换器中抛出错误,会通过conversionError拦截器直接把错误信息返回页面,所以也不会经过validation了。这样一来,validation配置里面的友好的提示信息就换成了异常里面编程人员才看得懂的message了,对于用户而言不太好。

实际上validation拦截器所做的是服务器端验证,它只对action里面的属性定义的类型起作用,比如在action中某属性attrib1是 int型的,那么像正则表达式之类针对string的验证器就不会起作用,这和客户端验证不同之处在于,客户端验证把所有类型的输入都看作string.

所以,页面输入的验证,现在可以有3道。

l 第一道是仍然基于javascript的客户端验证

这一道其实也可以通过转换器来识别,转换器最先读入时,仍然是String型,因此可以在转换过程中对格式进行验证。

l 第二道是转换器转换时的验证(其实是抛出转换异常,也可以当作输入格式上的验证)

这一道,默认的输出message比较不友好,不过可以通过在messageResource资源文件中配置这两个键值加入自己的信息:

1. Xwork.default.invalid.fieldvalue 默认类型转换失败信息

2. Xwork.fieldvalue.属性名 指定属性名的类型转换失败信息。

l 第三道是validation配置文件配置的服务器端验证。

这些验证类型名可以通过看xwork-x-x.jar中com.opensymphony.xwork2.validator.validators包内的default.xml看到

还是得强调下,服务器端验证主要关注的不是参数的格式,而是参数的实际内容,服务器端验证格式反而很不方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: