一些strtus2验证注解使用的感受

1. 在使用的时候应该在方法上面加上@Validation,这个是class level的注解
2. 一定要定义IPUT的返回类型,这个有时候会出错,不过很好排除
3. 要把validator这个拦截器加到当前的拦截器栈里面,这个一般咱们用defaultStack,它已经加进去了
4. struts2支持modelDriven和property的形式,所以modelDriven,有时候为了注解的重用咱们可能希望将注解加到vo里面,这个是可以的,只需在action里面定义vistorFields即可:

@Validations( visitorFields = {
@VisitorFieldValidator(
message="Default message",
fieldName="model", appendPrefix=true) }
)


5. 一般来说咱们validator有很多,有requiredString,intRange,email,还有url的等,咱们可能需要将它归类写到execute上面,但是咱们有时候会将CRUD方法写到一个类里面,用method方式来调用,但是有些业务方法是不需要验证的,我们可以用@SkipValidation来消除,但是问题是@Validations注解默认是执行所有的业务方法是执行。 问题是比如edit和create的注解是不同的,但是在执行edit的时候,将create方法的注解也执行了,幸亏struts提供了一个参数设置,用来设置仅执行当前方法上的注解。

<interceptor-ref name="paramsPrepareParamsStack">
<param name="validation.validateAnnotatedMethodOnly">true</param>
</interceptor-ref>

 

你可能感兴趣的:(struts)