知识大全 关于Struts2中visitor校验器的解决方法

Posted 文件

篇首语:相逢意气为君饮,系马高楼垂柳边。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 关于Struts2中visitor校验器的解决方法相关的知识,希望对你有一定的参考价值。

关于Struts2中visitor校验器的解决方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  这段时间重新开始拾起JAVA的学习 也是为了以后的工作打算 积累一些经验

  记得开始的时候 学习Struts 中的输入校验 就对Vistor校验器情有独钟 首先 一般我们在提交表单的时候 对表单的各字段就要有校验的过程 实际部署过程中要分 客户端校验 和服务器端校验 客户端校验使用rapid validation等第三方客户端校验框架就可以实现 而且比Struts 本身自带的客户端校验方式更好 但服务器端校验却可以分为好几种

   如果在Action中只有一个处理逻辑的话 可以重写ActionSupport中的validate()方法

   如果在Action中存在多个类似于execute的处理逻辑的话 我们可以重写validateXxx()方法(Xxx为不同的处理逻辑名称 例如有validateRegist()方法 就是处理Regist业务逻辑)

   编写对应于Action的validate 的xml文件 这个应该是最为常用的一种解决方案了 但是有一个问题 Action众多 或者在Action中有多个对应一个或多个POJO的处理逻辑 那么这些xml文件就会随着Action文件和处理逻辑的增加而相应的增加 这显然不是个好的现象   所以如果只是针对POJO来写相应的validate xml文件 无疑会好很多   这就是Visitor校验器的功用了

  很多和我一样的初学者可能手边都有一般李刚写的 《Struts 权威指南》 里面正好讲了visitor校验器 但是我照著书上讲的步骤重复做了N次都没有正确 于是乎在网上搜索了相关的文章 最后终于发现书上没有讲完整  (P P )

  以下我来举个例子

  我建立了一个User的POJO 处理逻辑为UserAction 测试页面为login jsp

  login jsp

      <%@ page language= java  pageEncoding= UTF %>   <%@ taglib prefix= s  uri= /struts tags %>   <!DOCTYPE  PUBLIC  //W C//DTD XHTML   Transitional//EN     transitional dtd >   < xmlns= >       <head>           <meta  equiv= Content Type  content= text/; charset=utf  />           <title>用户登录页面</title>           <link  type= text/css  rel= stylesheet  />                      </head>      <body>              <div id= all >          <div id= header >header</div>          <div id= content >          <s:form action= pro_login do >              <s:textfield name= user username  label= 用户名称  />              <s:password name= user userpwd  label= 登录密码  />              <s:submit value= 登 录  />          </s:form>              </div>          <div id= footer >footer</div>      </div>                  </body>  </>

  那么我的Visitor校验器为UserAction validation xml

    <?xml version=  encoding= UTF ?>   <!DOCTYPE validators PUBLIC  //OpenSymphony Group//XWork Validator  //EN   validator dtd >   <validators>           <field name= user >           <field validator type= visitor >               <param name= context >userContext</param>               <param name= appendPrefix >true</param>               <message></message>           </field validator>      </field>  </validators>

  (注 context参数可以随便设置 只要保持一致就可以了)

  User userContext validation xml

      <?xml version=  encoding= UTF ?>   <!DOCTYPE validators PUBLIC  //OpenSymphony Group//XWork Validator  //EN      validator dtd >   <validators>       <field name= username >           <field validator type= requiredstring >               <message>请输入用户名称</message>           </field validator>       </field>      <field name= userpwd >          <field validator type= requiredstring >              <message>请输入密码</message>          </field validator>              </field>         </validators>

  其中context参数将作为验证User类属性的文件名的一部分 如user属性返回一个User对象 那么用于验证User对象属性的文件名为User abc validation xml

  这个文件要和User class文件在同一个目录中 也就是要放到你的POJO文件相同的目录路径下 不然的话Visitor校验器就不会起作用

  这个就是李刚老师没有写全的地方 附加个项目截图就更为清楚了

  

  这样的话 Visitor校验器就起作用了

cha138/Article/program/Java/ky/201311/28465

相关参考

知识大全 Struts2输入校验流程

Struts2输入校验流程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  类型转换器负责请求参数

知识大全 struts2乱码解决方案

  今天做个项目竟然出现乱码提交表单到后台接收后打印出来的数据乱码看看配置项都好好的呀  解决步骤  strutsxml中配置<constantname=strutsinencodingvalu

关于检测仪表的校验方式,规程中有什么规定?

关于检测仪表的校验方式,规程中有什么规定?参考答案:1、在不影响机组安全运行的前提下,检查和校准可在运行中逐个进行。在运行中不能进行的,则随机组检修同时进行。2、若现场条件许可,仪表运行质量检查可采用

关于检测仪表的校验方式,规程中有什么规定?

关于检测仪表的校验方式,规程中有什么规定?参考答案:1、在不影响机组安全运行的前提下,检查和校准可在运行中逐个进行。在运行中不能进行的,则随机组检修同时进行。2、若现场条件许可,仪表运行质量检查可采用

知识大全 Struts2在IE7下不能下载的解决方案

Struts2在IE7下不能下载的解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 struts2 redirect-action传递参数解决方案

   我想在Post被Save成功之后直接转到viewPost页面该页面显示主贴及所有跟贴      也就是由

变送器精度校验时,关于误差的说法,正确的是()

变送器精度校验时,关于误差的说法,正确的是()A、变送器的测量误差应不大于变送器的基本误差B、变送器的基本误差等于变送器的准确度等级C、变送器的回程误差应不大于变送器基本误差绝对值的1/2D、变送器的

变送器精度校验时,关于误差的说法,正确的是()

变送器精度校验时,关于误差的说法,正确的是()A、变送器的测量误差应不大于变送器的基本误差B、变送器的基本误差等于变送器的准确度等级C、变送器的回程误差应不大于变送器基本误差绝对值的1/2D、变送器的

测量仪表精度校验时,关于误差的说法,多数情况下正确的是()

测量仪表精度校验时,关于误差的说法,多数情况下正确的是()A、仪表示值误差应不大于仪表的允许误差,回程误差应不大于仪表允许误差绝对值的1/2B、仪表的重复性误差应不大于仪表允许误差的1/3C、报警设定

测量仪表精度校验时,关于误差的说法,多数情况下正确的是()

测量仪表精度校验时,关于误差的说法,多数情况下正确的是()A、仪表示值误差应不大于仪表的允许误差,回程误差应不大于仪表允许误差绝对值的1/2B、仪表的重复性误差应不大于仪表允许误差的1/3C、报警设定