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

struts入门之输入校验

2008-08-27 17:57 253 查看
输入校验有两种方式:分别使用全局校验文件和局部校验文件【以PiontAction类为例】

一、全局校验文件的实现:

1、首先在struts.xml文件中加入:<constant name="struts.custom.i18n.resources" type="message"/>

【备注:该message名任意取值】

//constant常量含义:是struts2整个框架中要使用的哪些常量,这些常量将替换掉struts中的默认值!在不使用这些的情况下,如果出现类型转换错误时,struts2框架会自动生成一条错误信息,并将该信息加入到addfielderror里面,一般格式是:Invalid field name for “属性名”

2、在classes目录下(若在myeclipse中可以选择在src目录下,因为IDE自动将src目录下的文件映射到了classes目录下)创建一个名为message.properties的文件

xwork.default.invalid.fieldvalue={0} error

当提交的表单在类型转换出错的时候就会提示相应的信息:字段名称 error

二、局部校验文件的实现

1、如要对PiontAction类中的字段进行校验,可以编写名为PiontAction.properties的局部校验文件

【备注:文件名与该类类名一致,且该文件必须跟该类文件放在同一目录下】

2、PiontAction.properties的局部校验文件:

invalid.fieldvalue.属性名1=提示错误的信息

invalid.fieldvalue.属性名2=提示错误的信息

invalid.fieldvalue.属性名3=提示错误的信息

(如要显示中文错误提示信息,请采用jdk/lib/native2ascii文件进行转换 方法:native2ascii 当前文件(如:test.txt) 转换后的文件(PiontAction.properties)^_^)

当执行时会自动调用该配置文件。

******************************在使用时可能出现的问题*********************************************

1、虽然使用了校验文件,可结果没有出现在需要显示错误信息的jsp页面中

请在jsp页面中加入<s:fielderror/> 即可直接显示中。

2、错误信息也可以添加在PiontAction类中validate()方法中

当表单提交时,会先执行配置文件中的内容,然后再执行validate中的内容

3、当既有全局资源文件,又有局部资源文件的时候,将被局部资源文件所代替。但是无法替换掉validate()方法中的错误提示信息;可以采用将<s:form>标签的theme值设置为simple ,将取消表单默认的验证功能!

***** @_@ ************** ^-^ ****************** #_# *****************

我们 已经知道表单提交过来的内容会先进行类型转换,然后再进行输入校验,最后执行execute方法。

4、在配置的struts.xml文件文件中,<action>标签中的<result>标签中的type属性默认是dispatcher 请求转发。

5、而且可以在<action>标签中设置method属性值,该值指定将交给那个方法进行验证,如有validate方法,默认先执行validate方法,然后执行method属性中指定的方法:

eg:<action name="register" class="com.xx.xx.PointAction" method="method1">

执行时,首先会进入该com.xx.xx.PointAction类,如有validate方法,就先执行validate方法,然后再执行找到该method属性值对应的验证方法,方法名为 validateMethod1

方法取名规则:validate+ 指定方法名(首字母必需大写)

为了防止validate对验证进行干扰,可以采取以下策略:不重写validate方法,或者将validate方法改名为validateExecute()方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: