【Java EE 学习第36天】【struts2】【struts2系统验证】

一、struts2系统验证

  1.基于struts2系统验证的方式实际上就是通过配置xml文件的方式达到验证的目的。

  2.实际上系统校验的方法和手工校验的方法在底层的基本实现是相同的。但是使用系统校验的时候对实现过程进行了封装,用起来比较方便。

  3.实现过程

    (1)在Action文件中定义好相关属性,属性名字和表单中的name属性值要相同。

    (2)在Action同目录下新建一个XML文件,文件命名规则如下

      * 如果是针对整个Action文件的,则文件名为:ActionClassName-validation.xml

      * 如果是针对Action中的某个方法,则文件名为:ActionClassName-ActionName-validation.xml(ActionName为struts.xml文件中)

    (3)书写配置文件

    (4)不需要在struts.xml文件中进行相关的注册。

  4.配置文件的书写

    (1)首先,dtd文件规范是:xwork-core-2.3.24.jar包下xwork-validator-x.x.x.dtd文件,将该文件引入配置文件中,如果没有相关提示,则提示方法参考:

        http://kuangdaoyizhimei.blog.163.com/blog/static/22055721120158582251764/

    (2)按照提示一步一步写就可以了,但是注意有一个field-validator标签,该标签有一个type属性,该属性的值应当参考

        com.opensymphony.xwork2.validator.validators.default.xml文件中的相关定义

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE validators PUBLIC
 3         "-//Apache Struts//XWork Validator Definition 1.0//EN"
 4         "http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd">
 5
 6 <!-- START SNIPPET: validators-default -->
 7 <validators>
 8     <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
 9     <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
10     <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
11     <validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>
12     <validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>
13     <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>
14     <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>
15     <validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>
16     <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
17     <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
18     <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>
19     <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>
20     <validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>
21     <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
22     <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>
23     <validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>
24 </validators>
25 <!--  END SNIPPET: validators-default -->

default.xml

    (3)field-validator下的param标签中的参数参考com.opensymphony.xwork2.validator.validators.default.xml文件中的类源文件,查看源代码即可得到需要传递的参数的相关信息,如参数名,参数类型等。

  5.将手动验证的案例使用系统验证重新写一遍,只列出配置文件:

    * 文件名:ValidateAction-validateAction-validation.xml

    *文件内容:

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE validators PUBLIC
          "-//Apache Struts//XWork Validator 1.0.3//EN"
          "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
    <field name="username">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message><![CDATA[用户名不能为空!]]></message>
        </field-validator>
    </field>
    <field name="password">
        <field-validator type="requiredstring">
            <message><![CDATA[密码不能为空]]></message>
        </field-validator>
        <field-validator type="regex">
            <param name="trim">true</param>
            <param name="regex"><![CDATA[^[0-9a-zA-Z]{6,10}$]]></param>
            <message><![CDATA[密码为6-10位的字母和数字的组合!]]></message>
        </field-validator>
    </field>
</validators>

  6.两种配置文件的搜索顺序:ActionClassName-validation.xml,ActionClassName-ActionName-validation.xml,系统找到第一个校验文件的时候会继续搜索下一个校验文件,当找到所有校验文件的时候,会把校验文件里面的所有校验规则汇总,然后全部应用于处理方法的校验。如果两个校验文件中指定的校验规则冲突,则只是用后面文件中的校验规则。

时间: 2024-10-07 02:49:51

【Java EE 学习第36天】【struts2】【struts2系统验证】的相关文章

Java EE学习--Quartz基本用法

新浪博客完全不适合写技术类文章.本来是想找一个技术性的博客发发自己最近学的东西,发现博客园起源于咱江苏,一个非常质朴的网站,行,咱要养成好习惯,以后没事多总结总结经验吧.很多时候都在网上搜索别人的总结,我自己也总结些东西,或许多多少少能帮得上别人. 首先提到的是Quartz,一个开源的定期执行计划任务的框架.其实我内心好奇这个框架很久了,像那些能定时修改数据库数据,定时分配任务的功能一直觉得很神奇.心动不如行动,今天我就小小的学习了一下用法,力求言简意赅,大家都懂的我就不说了. 第一步:下载Qu

Java EE学习路线

java EE学习路线 一.java基础 1.初识Java 内存  数据  变量     2.结构语句        1)条件           if  switch        2)循环           for  while        3)语句           break  continue    3.数组    4.嵌套循环    5.最终任务 万年历      2048小游戏  二.面向对象 1.类和对象 2.方法    3.String()       Date  cal

【Java EE 学习第16天】【dbcp数据库连接池】【c3p0数据库连接池】

零.回顾之前使用的动态代理的方式实现的数据库连接池: 代码: 1 package day16.utils; 2 3 import java.io.IOException; 4 import java.lang.reflect.InvocationHandler; 5 import java.lang.reflect.Method; 6 import java.lang.reflect.Proxy; 7 import java.sql.Connection; 8 import java.sql.D

Java EE 学习(7):IDEA + maven + spring 搭建 web(3)- 配置数据库

参考: https://my.oschina.net/gaussik/blog/513444 注:在阅读本文前,请先阅读: Java EE 学习(5):IDEA + maven + spring 搭建 web(1) Java EE 学习(6):IDEA + maven + spring 搭建 web(2) 5 数据库配置 下面,就要通过一个简单的例子,来介绍 SpringMVC 如何集成 Spring Data JPA(由 Hibernate JPA 提供),来进行强大的数据库访问,并通过本章节

JAVA EE 学习笔记[V1 jsp编程]

在三月初学校开设了javaee的课程,也就此展开了对javaee基础的学习.然后老师也对这次的课程有一定要求.前面的基础就为最终的作业做准备啦~ 在上学期我们学习了java相关知识,也对java se 的安装使用有了一定的认知,而java ee则是构建于java se 平台之上的一套多层的,可扩展的的网络应用. 学习java ee我们首先进行环境的搭建.无非就是使用 tomcat进行服务器的搭建和jdk环境变量配置.而IDE这方面我们选择myeclipse 2016 CI(这个编译器自带tomc

Java EE 学习(5):IDEA + maven + spring 搭建 web(1)

参考:http://www.cnblogs.com/lonelyxmas/p/5397422.html http://www.ctolib.com/docs-IntelliJ-IDEA-c--159047.html 孔老师的<SpringMVC视频教程> 记录: 本节主要完成 使用 maven 管理 spring + 项目 包,搭建 maven+spring 的 web 项目平台. 前提: 已安装并配置好 - Intellij IDEA 16.3.5 Ultimate - JDK 1.8.0_

Java EE 学习(8):IDEA + maven + spring 搭建 web(4)- 用户管理

转载:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) 注:在阅读本文前,请先阅读: Java EE 学习(5):IDEA + maven + spring 搭建 web(1) ava EE 学习(6):IDEA + maven + spring 搭建 web(2)- 配置 Spring Java EE 学习(7):IDEA + maven + spring 搭建 web(3)- 配置数据库 记录: 通过对用户表的管理,更加深入地讲解SpringMVC的操作. 6 用户管理 既然我们

Java EE 学习(9):IDEA + maven + spring 搭建 web(5)- 博客文章管理

转载:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) . 注:在阅读本文前,请先阅读: Java EE 学习(5):IDEA + maven + spring 搭建 web(1) Java EE 学习(6):IDEA + maven + spring 搭建 web(2)- 配置 Spring Java EE 学习(7):IDEA + maven + spring 搭建 web(3)- 配置数据库 Java EE 学习(8):IDEA + maven + spring 搭建 web(

Java EE学习之旅1——HeadFirstJavaEE

因为找到的实习是用Java开发的公司,所以来学习一下Java EE的知识. 首先找来了书<轻量级Java EE企业应用实战>. 啊不得不说学了Java之后直接看这个还是完全不行呢,好多名词看都没有看过啊哈哈. 首先来看看都些啥看不懂的词... 1.JSP.Servlet和JavaBean JSP和Servlet都是用在表现层的东西,而实质上JSP编译成Servlet才运行. 但Servlet开发成本太大,所以用JSP. JavaBean用来通信交换表现层和底层数据. 2.MVC和Struts