输入校验

在struts2中可以实现对Action的所有方法进行校验或者对Action的指定方法进行校验。struts2提供了两种实现方法。

1.采用手工编写代码实现。2.基于XML配置的方式是实现。

UserValidationAction 

 

User 实体

 

UserValidationAction 在xml中的配置

 

登录页面login.jsp

 

输出页面message.jsp

1.1手工编写代码实现对Action中所有方法进行输入校验

通过继承ActionSupport重写validate()方法实现输入校验,当某个数据校验失败时,调用addFieldError()方法实现往系统的filedErrors添加校验失败信息,在校验不通过时会转发到该Action在struts.xml中配置的input视图,在input视图通过struts2的标签<s:fielderror/>输出错误信息。

在UserValidationAction中添加下面代码

 

1.2手工编写实现对Action中指定方法进行输入校验

 通过继承ActionSupport重写validateXxx()方法实现输入校验,validateXxx()只校验Action中方法名为xxx的方法,当某个数据校验失败时,调用addFieldError()方法实现往系统的filedErrors添 加校验失败信息,在校验不通过时会转发到该Action在struts.xml中配置的input视图,在input视图通过struts2的标签<s:fielderror/>输出错误信息

在UserValidationAction中添加下面代码

 

2.1基于XML配置方式实现对Action的所有方法进行输入校验

基于XML方式也需要继承ActionSupport,并提供校验文件,校验文件和Action类放在一个包下,文件的取名格式为:ActionClassName-validation.xml,ActionClassName为Action的简单类名,-validation为固定写法。上面的UserValidationAction对应的校验文件名为UserValidationAction-validation.xml。

UserValidationAction-validation.xml代码如下

 

<fileld>指定Action中要校验的属性,<field-vlidator>指定校验器,上面的requiredstring,email是系统提供的,系统中提供了能满足大部分校验需求的校验器,xwork-core-2.x.jar中的com.opensymphony.xwork2.validator.validators下的default.xml中定义了这些校验器。

<meessage>为校验失败后的提示信息,如果需要国际化,可以为message指定key属性,key的值为资源文件中的key。

2.2基于XML配置方式实现对Action的指定方法进行输入校验

只需要对Action中的某个Action方法进行校验,校验文件的取名为ActionClassName-ActionName-validation.xml。ActionName是

Action在struts.xml中的name属性值。

上面的UserValidationAction对应的校验文件名为UserValidationAction-test_update-validation.xml

UserValidationAction-test_update-validation.xml代码和UserValidationAction-validation.xml相同。

 

 

HTTP Status 404 -No result defined for action 错误:

 

原因:Action中的属性值为空的时候,Struts2的默认拦截器会报错,但是又找不到input的Result,不能够把错误返回,所以报这种错误。

解决方法:

1,在页面中给空值赋默认值。

2,重新定义一个Action,去掉空值的成员变量。

3,添加input的Result,并在这个页面给出提示<s:fielderror/>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值