Visitor校验器主要用于检测Action里的复合属性,如一个Action里面包含了User类型的属性。
假设User类包含了username和password属性,为了验证Action里User类的username和password属性输入值是否有效,就可以使用Visitor校验器。
通常情况下可以使用[action名]+[-方法名(是struts.xml配置中的别名)]+validation.xml来校验;如此例需要验证User类,则需要添加一个User-[上下文名]-validation.xml来配置,且User-[上下文名]-validation.xml文件必须与User类在同一个包中。

若Action名为AddUserAction,则校验文件名为AddUserAction-validation.xml,内容如下

<!DOCTYPE validators PUBLIC
        "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>
         <!-- 校验的Action中的user类 -->
    <field name="user">
        <field-validator type="visitor">
                       <!-- 指定校验规则文件的context名为add,此名可任意取 -->
            <param name="context">add</param>
        <!-- 指定校验失败后提示信息是否添加下面前缀,如果设置为false,则在标签对应的地方不显示错误,需要用fielderrors来显示 -->
            <param name="appendPrefix">true</param>
                         <!-- 指定校验失败的提示信息前缀 -->
            <message>错误:</message>
        </field-validator>
    </field>

</validators>

然后在User类所在包建立名为User-add-validation.xml(add为上面<param name="context">add</param>中定议),内容如下

<!DOCTYPE validators PUBLIC
        "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>

<field name="username">
        <field-validator type="requiredstring">
            <message>用户名不能为空</message>
        </field-validator>
    </field>
    <field name="password">
        <field-validator type="requiredstring">
            <message>密码不能为空</message>
        </field-validator>
    </field>

</validators>

经过以上设置,即可对action中的user进行验证了!
另:可以定义User-validation.xml来验证公共属性,定义了Visitor校验器后,会自动检查User-validation.xml中的公共规则,如Visitor诉求验器中只写message属性,则只进行公共属性验证。

转载于:https://www.cnblogs.com/netshuai/archive/2009/08/05/1539870.html

struts2校验框架之Visitor校验器相关推荐

  1. 使用Struts2验证框架实现输入校验

    学习了<Struts2权威指南>中关于Struts2的输入校验,自己动手测试了一把,也遇到一些问题,在这里记录一下.直接看代码: login.jsp [xhtml] view plainc ...

  2. java spring 校验框架_Springboot 使用校验框架validation校验

    b/s系统中对http请求数据的校验多数在客户端进行,这也是出于简单及用户体验性上考虑,但是在一些安全性要求高的系统中服务端校验是不可缺少的. Spring3支持JSR-303验证框架,JSR-303 ...

  3. Struts2 校验框架学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> truts2 校验框架 Struts2 和Struts1同样也提供了校验框架,但在Struts2 已经不再把校验框架做为一个插 ...

  4. struts2之二(输入校验)

    校验分为前台输入校验和后台服务器端校验,所以后台校验是最后一道屏障也是极其重要的! 流程如下: 先一个简单的jsp页面 ,然后直接提交给后台程序处理  ,最后返回到结果页面 步骤一:配置struts2 ...

  5. 高效使用hibernate-validator校验框架

    一.前言 高效.合理的使用hibernate-validator校验框架可以提高程序的可读性,以及减少不必要的代码逻辑.接下来会介绍一下常用一些使用方式. 二.常用注解说明 限制 说明 @Null 限 ...

  6. Springboot Bean Validation校验框架

    我们的校验框架通常用于DTO层,用户从前端通过Json串传入值,后端对传入的Json封装到DTO层中,我们对DTO层的元素进行校验,比如邮箱,手机号等等. 首先需要引入bean校验需要的jar包: & ...

  7. springboot 配置 Validator 校验框架国际化 支持快速返回

    1.国际化资源 使用IDEA创建资源组 2.编写配置 application.yml 增加国际化目录配置 增加国际化配置类 从请求头获取多语言关键字 /*** 国际化配置** @author Lion ...

  8. SpringBoot使用Validation框架完成参数校验AND异常处理

    关于Validation框架:(官方简介) 在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情.应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的.在通常的 ...

  9. SSM整合框架实现ajax校验

    SSM整合框架实现ajax校验   刚学习了ssm框架,ajax校验成功,分享下 1.导入jar包 2.配置spring-servlet.xml 1 <bean class="org. ...

最新文章

  1. 洛谷精选 - 字符串合集
  2. vscode智能提示css的插件_Visual Studio Code 必备插件,主题及语法提示
  3. 认识适配器:JSON绑定概述系列
  4. 差分跳频MATLAB,基于Matlab的短波差分跳频通信仿真设计与实现
  5. 兄弟们别加班了,老板不会因为你拼命写代码而感谢你啊~有木有啊
  6. 【011】Excel宏编程相关封装模块(新建文件、关闭文件、新增/删除工作薄)_004_#VBA
  7. 模型实践 | Alphafold 蛋白质结构预测
  8. python多元线性回归报错(assert pytype not in (tokenize.NL, tokenize.NEWLINE))
  9. 笔记本w ndows未能启动,Windows未能启动原因可能是最近更改了硬件或软件解决方法...
  10. OL3-Cesium 二三维鼠标事件统一处理
  11. 好玩的Windows编程之本地时间(3) BigBen
  12. 让人拍案叫绝的创意都是如何诞生的
  13. DialogFragment中通过dataBinding绑定View,设置点击事件无效,通过getWindow设置dialog位置和大小无效。
  14. 哈工大计算机学院学号,【复试机试内容回忆汇总帖】2019年哈尔滨工业大学计算机考研...
  15. 18对个人财富的窥视——对一款手机木马的解读及分析
  16. Mac苹果电脑安装虚拟机
  17. 在线绘制图表工具的使用
  18. Linux进程描述符task_struct结构体
  19. 山东专升本计算机第八章-多媒体技术基础
  20. 计算k以内最大的10个能被13或17整除的自然数之和

热门文章

  1. strtotime php,php strtotime函数怎么用
  2. python简单命令语句_python基础教程之[基础学习]MySQL常用语句命令总结|python基础教程|python入门|python教程...
  3. linux nginx编译安装mysql_Centos7下编译安装配置Nginx+PHP+MySql环境
  4. 朴素贝叶斯算法_朴素贝叶斯算法原理
  5. python文件移动到文件夹_python – 将文件夹中的文件移动到顶级目录
  6. 过滤html标签 去除html标签
  7. 复旦大学计算机学院官网,Computer and Information Science
  8. linux mysql 5.7密码忘记_Mysql5.7.14 linux版密码忘记的找回方法
  9. java中对list监听_java – Guava:为ListenableFuture回调和监听器设置默认的Executor
  10. 输出字符串引用名java_将方法名称作为字符串给出时,如何调用Java方法?