Struts2中visitor校验器怎样解决?
1。如果在Action中只有一个处理逻辑的话,可以重写ActionSupport中的validate()方法。 2。如果在Action中存在多个类似于execute的处理逻辑的话,我们可以重写validateXxx()方法(Xxx为不同的处理逻辑名称,例如有validateRegist()方法,就是处理Regist业务逻辑) 3。 编写对应于Action的validate 的xml文件。这个应该是最为常用的一种解决方案了,但是有一个问题,Action众多,或者在Action中有多个对应一个或多个POJO的处理逻辑,那么这些xml文件就会随着Action文件和处理逻辑的增加而相应的增...全部
1。如果在Action中只有一个处理逻辑的话,可以重写ActionSupport中的validate()方法。 2。如果在Action中存在多个类似于execute的处理逻辑的话,我们可以重写validateXxx()方法(Xxx为不同的处理逻辑名称,例如有validateRegist()方法,就是处理Regist业务逻辑) 3。
编写对应于Action的validate 的xml文件。这个应该是最为常用的一种解决方案了,但是有一个问题,Action众多,或者在Action中有多个对应一个或多个POJO的处理逻辑,那么这些xml文件就会随着Action文件和处理逻辑的增加而相应的增加,这显然不是个好的现象。
所以如果只是针对POJO来写相应的validate xml文件,无疑会好很多。 这就是Visitor校验器的功用了。 很多初学者可能手边都有一般李刚写的 《Struts 2 权威指南》,里面正好讲了visitor校验器,但是照着书上讲的步骤重复做了N次都没有正确,于是乎在网上搜索了相关的文章,最后终于发现书上没有讲完整 (P280-P281) 以下我来举个例子: 考试大建立了一个User的POJO,处理逻辑为UserAction, 测试页面为login。
jsp login。jsp 1 2 3 5 6 7 8 用户登录页面 9 10 11 12 13 header 14 15 16 17 18 19 20 21 footer 22 23 24 那么我的Visitor校验器为UserAction-validation。
xml 1 2 3 4 5 6
userContext 7
true 8 9 10 11 (注:context参数可以随便设置,只要保持一致就可以了) User-userContext-validation。
xml 1 2 4 5 6 7 请输入用户名称 8 9 10 11 12 请输入密码 13 14 15 16 其中context参数将作为验证User类属性的文件名的一部分,如user属性返回一个User对象,那么用于验证User对象属性的文件名为User-abc-validation。
xml。 这个文件要和User。class文件在同一个目录中。也就是要放到你的POJO文件相同的目录路径下,不然的话Visitor校验器就不会起作用。 这个附加个项目截图就更为清楚了。 这样的话,Visitor校验器就起作用了。
。收起