10.6 小结

Struts2框架下的用户输入验证分为三种方式:1. 编程方式下的验证 2. 配置方式下的验证 3.注解方式下的验证。
         如果在Struts2项目下存在多种验证方式,其执行的先后顺序如下:
         1.首先执行校验框架(xml文件)
2.通过反射调用自定义方法的校验方法(validateXxx)
3.执行validate方法
如果未出现校验错误,则转入inout视图所指定的视图资源(所以,对于验证的方法,必须要在配置文件中为其指定input结果视图。对于struts.xml文件的结果配置来说,局部要优于全局。
Struts2的校验框架(有效的xml文件)。具体来说分为字段优先校验器与校验器优先校验器。配置文件的命名规则为:action类名-validatin.xml;当一个action对应多个逻辑处理方法,不同方法的用户输入验证规则又不想同时,配置文件的命名规则为: action类名-name属性名-validatin.xml.(name属性名:在strtus配置文件中的)配置文件存放在与Action相同的文件夹内。先加载action类名-validatin.xml,然后加载action类名-name属性名-validatin.xml文件。
Struts2提供了2种验证器分别是:字段校验器,非字段校验器。非字段校验:先指定校验器:由谁来校验,来校验谁!字段校验器:先指定校验的属性:我来校验谁,由谁来校验!
自定义验证类很简单,首先创建验证框架扩展类,这里必须继承 FieldValidatorSupport 类,重写validate方法。然后新建validators.xml文件,将"default.xml"的配置信息和自定义验证类的配置信息放到文件中,最后把validators.xml文件放到源码根目录下。
基于注解方式的用户输入验证,该基于字段的验证可以用于getXxx和setXxx方法之前,简单验证用于execute方法之前,编写起来更加便捷,但是不利于后期的维护。

转载于:https://blog.51cto.com/5926725/1066870

Struts2用户输入验证(6)相关推荐

  1. Struts2的输入验证(三)-短路验证与非字段验证

    一.短路验证 若对一个字段使用多个验证器,默认情况下会执行所有的验证.若希望前面的验证器验证没有通过,后面的就不再验证,可以使用短路验证. 1)对同一个字段内的多个验证器,如果一个短路验证器验证失败, ...

  2. 3.Struts2的输入验证

    l          当类型转换成功以后,struts2将进行输入验证 若要进行输入验证则你的action必须继承ActionSupport类,实现其validate方法 在方法中调用addFiled ...

  3. [转]MVC+JQuery validate实现用户输入验证

    本文转自:http://www.cnblogs.com/ahui/archive/2010/10/08/1845677.html MVC服务器端: 1.在controller中验证用户输入,如果验证失 ...

  4. struts2中用户登陆验证的常用方法

    一般我们在登陆验证窗口输入用户名或密码后,会将这些信息与数据库中的相关信息进行匹配,如何正确,就会返回到相应的页面,如果不正确,在登陆窗口会显示用户名或密码不正确的警告. struts2中的做法: 在 ...

  5. 检验入参合法性有哪些_验证用户输入的参数合法性的shell脚本

    今天这个例子是 用来验证用户输入的参数的合法性的,程序并不复杂,如下所示: #!/bin/sh # validAlphaNum - Ensures that input consists only o ...

  6. 使用AT SELECTION-SCREEN事件验证用户输入条件的反思

    回想一下,为什么要在AT SELECTION-SCREEN事件验证用户输入条件?好像是第一次做ABAP培训中老师提到的,当时也没有觉得有什么问题,以后在程序中也就按照这样的思路去写代码了.像下面简单的 ...

  7. Java黑皮书课后题第6章:**6.31(金融应用:信用卡号的合法性验证)和**6.32 编写程序,提示用户输入一个long型整数的信用卡号码,显示这个数字是合法的还是非法的

    6.31(金融应用:信用卡号的合法性验证)编写程序,提示用户输入一个long型整数的信用卡号码,显示这个数字是合法的还是非法的 6.31题目 题目描述 破题 6.31代码 6.32 代码 运行实例 6 ...

  8. 验证用户输入的是不是中文名字 淘宝精品案例 元素样式设置的方式 链式编程

    验证用户输入的是不是中文名字 <!DOCTYPE html> <html lang="en"> <head><meta charset=& ...

  9. python输入姓名_Python 用户输入用户名,进行验证

    Python 征程(用户输入名字进行密码验证) #!/usr/bin/env python account_file = file('account.txt') user_list = account ...

最新文章

  1. 实战案例丨小型企业如何从IPv4迁移至IPv6
  2. linux 低功耗运行,关于Linux的快速启动(fastboot)和低功耗(low power)的学习记录...
  3. Java .Net Byte数组存储差异以及解决方法
  4. 模板:Prime最小生成树堆优化 + Dijkstra单源最短路堆优化
  5. linux网络服务之dns
  6. UISegmentedControl UISlider
  7. 火炬之光模型导出(Unity载入火炬之光的模型)
  8. java堆外内存6_Java 堆外内存的使用
  9. 你和文字,陪我行走岁月
  10. matlab在振动信号处理中的应用_激光测振仪在超声变幅杆振动测试中的应用
  11. 非关系型数据库Redis Linux 下安装
  12. java的第一个代码模型,简单的java类
  13. 大话测试数据(二):概念测试数据的获取
  14. curl指定代理_如何使用cURL指定用户代理
  15. 【深度学习】使用labelImg标注图像
  16. 在linux环境下测试和使用aria2c
  17. Chrome网页翻译插件,实测超好用,万物皆可译
  18. [翻译] Icon and Image Sizes
  19. 软件工程(4)--螺旋模型
  20. cpu核数和逻辑个数的区别_区别: CPU 路数、CPU 核数、物理 CPU 个数、逻辑 CPU 个数...

热门文章

  1. Apache Camel 2.15.0 发布,Java 规则引擎
  2. C# System.Guid.NewGuid() 格式化
  3. Go-Mega Tutorial 01 - Hello World
  4. 人工智能科学家发现 “衰老时钟”,我们的生物钟可以倒转
  5. mysql用户管理,常用sql语句,mysql数据库备份恢复
  6. 编写字符串反转函数 - 小小外星人的技术博客 - 博客频道 - CSDN.NET
  7. php中使用phpmailer发送邮件
  8. PHP 10条有用的建议
  9. 批量按照文件大小排序并修改文件名
  10. .NET托管内存类应用的内存泄漏分析和诊断