输入校验:

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. springMVC的全局异常设置

    先说为什么要设置全局异常.比如说,你程序出错了,500错误,大家都知道,程序出错就不会往下面执行,但是客户端那边还是一直等待状态,所以,我们后台无论正常还是报错都要给客户端返回数据.当然,我们可以tr ...

  2. Kafka技术内幕 读书笔记之(四) 新消费者——新消费者客户端(二)

    消费者拉取消息 消费者创建拉取请求的准备工作,和生产者创建生产请求的准备工作类似,它们都必须和分区的主副本交互.一个生产者写入的分区和消费者分配的分区都可能有多个,同时多个分区的主副本有可能在同一个节 ...

  3. System.Web.Optimization 合并压缩技术的使用

    捆绑和压缩原理是:将多个css文件动态合并和压缩为一个css文件.多个js文件动态合并和压缩为一个js文件,如此达到减少浏览器对服务器资源文件的请求数量.缩小资源文件的尺寸来提高页面反应速度的目的.A ...

  4. Elasticsearch分片优化

    原文地址:https://qbox.io/blog/optimizing-elasticsearch-how-many-shards-per-index 大多数ElasticSearch用户在创建索引 ...

  5. 用过企业微信APP 后,微信接收不到消息,解决方案

    用过企业微信APP 后,微信接收不到消息的,怎么办? 请打开企业微信,找到:我----设置----新消息通知----仅在企业微信中接收消息

  6. Filter Authentication 登录认证

    [编程式配置]可用webxml配置替换@WebListenerpublic class FilterListenerConfigurator implements ServletContextList ...

  7. mybatis配置文件详解

    这是我看到的博文中最全的一篇了 参见:https://www.cnblogs.com/black-spike/p/7765732.html

  8. 迅为-IMX6UL开发板丨双网口丨双CAN总线丨4路USB HOST丨2路串口、6路插座引出,共8路串口丨1路RGB信号丨2路LVDS信号

    迅为iMX6UL开发板多路串口开发平台迅为i.MX 6UL开发板基于ARM Cortex-A7内核,主频高达528 MHz,内存:512MDDR3存储:8G EMMC,支持2路CAN,2路百兆以太网, ...

  9. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Assignment(Regularization)

    声明:所有内容来自coursera,作为个人学习笔记记录在这里. Regularization Welcome to the second assignment of this week. Deep ...

  10. 5.28 js基础 简介

    Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) JavaScript历史背景介绍 布 ...