输入校验:

1. 分类
客户端校验:javascript,它是用户体验而已,可以绕开。
服务器端校验
* 代码校验
1). 要求Action必须继承ActionSupport
2). 重写ActionSupport类的validate()方法。
添加校验逻辑!
> 如果出错,添加fielderror即可。
* 配置校验

2. 原理
validation拦截器,会调用Action的validate()方法,我们自己编写的validate()方法,它会在校验失败时向当前Action中添加字段错误。
workflow拦截器,它会查看当前Action是否存在错误,如果存在,跳转到input,我们必须为当前Action提供input结果

-------------------------

局部校验
一个Action中可以有多个请求处理方法。每个请求处理方法应该拥有自己的校验方法,而且还要拥有自己的input结果。

局部校验方法命名规则:validate请求处理方法名称(),例如请求处理方法的名称为login,那么它的校验方法名称为:validateLogin()

如果同时提供了局部校验方法和全局校验方法,那么是先局部后全局。

通常有局部就不要再定义全局校验。

让局部校验都拥有自己的input结果。
在请求处理方法上配置InputConfig,给出resultName成员,它来指定当前请求处理方法的独有的input结果。

 // 当login()方法的校验方法校验失败时,会跳转到loginInput结果,这说明我们需要在<action>中配置名为loginInput的<result>。
@InputConfig(resultName="loginInput")
public String login() {
...
}

==================================
==================================
==================================

xml 配置校验

<action name="aaa" class="cn.itcast.MyAction"/>

校验规则在Struts中都是类,每个校验类都叫校验器,每个校验器都有自己的validate()方法,即校验方法。
我们只需要把值传递给它就可以完成校验。
非空 requreid
长度 stringlength --> 字符串,最大长度和最小长度
日期 date
int范围 int
url url
mail mail
regex regex

<field name="username">
<field-validator name="requiredstring">
<message>用户名不能为空!</message>
</field-validator/>
<field-validator name="stringlength">
<param name="minLength">3</param>
<param name="maxLength">10</param>
<message>用户名必须在3 ~ 10之间!</message>
</field-validator/>
</field>

全局校验
1. 文件的位置:Action同包下
2. 文件的名称:Action名称-validation.xml
3. 文件的内容:已经知道了。

==================================

XML的局部校验

1. 文件的位置:Action同包下
2. 文件的名称:Action名称-访问的<action>名称-validation.xml
3. 文件的内容:同上。

struts2框架之输入校验(参考第二天学习笔记)的更多相关文章

  1. struts2框架之类型转换(参考第二天学习笔记)

    类型转换 1. 什么是类型转换 刚才学习了封装请求参数,把表单数据封装到Action(模型)的属性中.表单中的数据都是String类型,但Action(模型)的属性不一定什么类型. 将来我们还需要数据 ...

  2. struts2框架之国际化(参考第二天学习笔记)

    国际化 1. 回忆之前的国际化 1). 资源包(key=字符串) > 命名:基本名称+local部分.properties,res_zh.properties,res_zh_CN.propert ...

  3. struts2框架之拦截器(参考第二天学习笔记)

    拦截器 1. 什么是拦截器 1). 与JavaWeb中的Filter比较相似. 2). 拦截器只能拦截Action!!! 2. Struts中定义了很多拦截器,其中defaultStack中的拦截器会 ...

  4. struts2框架之请求参数(参考第二天学习笔记)

    获取请求参数 请求参数:表单中的数据,或者是超链接中的数据. 1. 得到request,再通过request来获取.2. 属性驱动 在Action中提供与表单字段名称相同的属性即可. 而一个名为par ...

  5. 《Linux内核分析》第二周学习笔记

    <Linux内核分析>第二周学习笔记 操作系统是如何工作的 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...

  6. Linux内核分析第二周学习笔记

    linux内核分析第二周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  7. Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver

    1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管 ...

  8. Docker技术入门与实战 第二版-学习笔记-8-网络功能network-3-容器访问控制和自定义网桥

    1)容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables防火墙来进行管理和实现. iptables是 Linux 上默认的防火墙软件,在大部分发行版中都自带. 容器访问外部网络 ...

  9. AS开发实战第二章学习笔记——其他

    第二章学习笔记(1.19-1.22)像素Android支持的像素单位主要有px(像素).in(英寸).mm(毫米).pt(磅,1/72英寸).dp(与设备无关的显示单位).dip(就是dp).sp(用 ...

随机推荐

  1. 关于Mysql的高级查询的操作

    前言:作为一名后端的程序员操作数据库的能力是我们基本的技能,而连表查询是我们的这个技能的关键点所在.注意这里顾明思义是对数据的查询的操作 (一).联合查询(关键字union/union all) 什么 ...

  2. 2018牛客网暑期ACM多校训练营(第一场)B Symmetric Matrix(思维+数列递推)

    题意 给出一个矩阵,矩阵每行的和必须为2,且是一个主对称矩阵.问你大小为n的这样的合法矩阵有多少个. 分析 作者:美食不可负064链接:https://www.nowcoder.com/discuss ...

  3. HDU 1097(m次幂的个位数 规律)

    题意是求 n^m 结果的最后一位数. 可以用快速幂取模的方法做,当然本题还有更简单的方法: 所有数字( 0 - 9 )的 m 次幂的个位数不会受进位的影响,只收到乘数的影响,所以在结果中一旦出现之前出 ...

  4. Spark Submitting Applications浅析

    Submitting Applications提交应用程序 在spark的bin目录下spark-submit脚本被用于在集群中启动应用程序.它可以通过一个统一的接口来使用Spark支持的所有集群管理 ...

  5. tomcat解决GET请求中文参数乱码

    通常,在使用Spring MVC框架的应用程序中,为了解决中文参数乱码的问题,都会添加如下过滤器配置: <filter> <filter-name>encodingFilter ...

  6. 如何用java语言实现C#中的ref关键字(按引用传递参数)的效果

    https://www.cnblogs.com/nnngu/p/8300164.html

  7. Java8新特性 并行流与串行流 Fork Join

    并行流就是把一个内容分成多个数据块,并用不同的线程分 别处理每个数据块的流. Java 8 中将并行进行了优化,我们可以很容易的对数据进行并 行操作. Stream API 可以声明性地通过 para ...

  8. php错误提示 open_basedir restriction in effect 解决

    <VirtualHost *:80> DocumentRoot "D:/www/4w_raaaa_com_2017" ServerName www.raaaa.com: ...

  9. C++中extern(转)

    1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.此外extern也可用来进行链接指定. 也就是说extern ...

  10. Java EE之Request部分方法使用示例

    Description: ApplicationProjectName:MedicineMs login.jsp[action:login|method:get] to loginServlet Ou ...