`
nintenyun
  • 浏览: 26203 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

struts2输入验证(转)

阅读更多

struts2输入验证--补充(转)

原文地址:http://blog.csdn.net/ForWayfarer/archive/2008/09/20/2955812.aspx

1.struts2怎么实现方法签名 (类似于struts1的DispatchAction):在strust.xml中配置如下
<action ... method="register" ></action>
<action ... method="login" ></action>
<action ... method="insert" ></action>

(1)struts2怎么实现分发验证 :对应于每个方法签名,可以有相应的validate()方法如下
public void validateRegister()
public void validateLogin()
public void validateInsert()

(2)struts2怎么实现分发验证 :对应于每个方法签名,可以有相应的验证框架如下
UserAction-register-validation.xml
UserAction-login-validation.xml
UserAction-insert-validation.xml

2.验证顺序

在struts1中,如果在FormBean中覆盖了validate()方法,让其放回null值,则验证框架(xml验证)就会失效。返回 null则代表验证通过or无需验证;覆盖的validate()方法如果返回super.validate(mapping,request)即调用父 类的validate(mapping,request),验证框架才会起作用。也就是说,如果想让验证框架有效,则不要覆盖validate()方法, 如果除了验证框架验证,你还想在validate()方法中添加一些其他验证,可以覆盖validate()方法,但返回值须为 super.validate(mapping,request)。

在struts2中类似。struts2的执行顺序为:

(1). 首先Struts2对客户端传来的数据进行类型转换;

(2). 类型转换完毕后再进行输入校验,顺序:UserAction-validation.xml --> UserAction-login-validation.xml --> public void validateLogin(){} --> public void validate(){};

(3). 如果类型转换和输入校验都没有错误发生,那么进入login()方法/execuet()方法(调用商业逻辑).

注意:如果类型转换不成功,也同样要进行输入校验,所以错误信息打印会将二者的错误信息全部打印出来

3.struts2的错误信息

struts2有两种错误级别:addFieldError和addActionError

addActionError(String anErrorMessage) -- Add an Action-level error message to this Action:看源代码对于Action级别的错误信息,实际上是放置在ArrayList中的,action级别的error不会在表单中显示。

addFieldError(String fieldName, String errorMessage) --  Add an error message for a given field:看源代码真正存放field级别错误信息的对象是LinkedHashMap,该LinkedHashMap的key是String类型 的,value是ArrayList类型的(addFielderror(String, ArrayList)),实际上是:LinkedHashMap<String, ArrayList<String>> errors。field级别的error会在表单中显示。

源代码中还有这样一个方法:public boolean hasErrors() { if (hasActionErrors() || hasFieldErrors()) ...} 则返回input页面,表示不论是field级别的还是action级别的,只要错误容器不为空,就返回 到input页面。

另外:struts2验证框架(xml验证)是将错误保存在fielderror中的,而不是actionerror。所以在jsp显示错误时要注意。

4.struts2支持客户端验证,s标签依然支持js事件,所以客户端验证推荐自己写js,不过基本不用struts做客户端验证。此外,s标签即使你不给其设置id属性,s标签也会自动生成一个id(通过查看页面源代码(获得s标签的html代码)可获得),如果你自定义了id,则会将s标签自动生成的id覆盖。

分享到:
评论

相关推荐

    struts2输入验证例子

    struts2输入验证例子struts2输入验证例子struts2输入验证例子

    使用struts2进行输入校验

    使用struts2进行输入校验入门 (附图)

    Struts2登陆+输入验证+动态调用实例

    如题,Struts2登陆+输入验证+动态调用实例,使用MyEclipse导入直接就可以运行

    Struts2与Ajax结合输入验证[包含功能代码段]

    Struts2与Ajax结合 输入验证

    struts2对Action提交方法进行验证

    但是这样做,不好之处就是我们可以通过人为的将开发者的验证js注掉,这样就导致验证失败,对后台安全性是一个很大的威胁,在采用struts2进行开发时,我们可以采用框架内置的校验器! 本附件为【Struts2】★☆之...

    web struts输入验证

    struts输入验证 熟悉Struts2的校验机制,详细的校验在后面的文章进行介绍,今天进行空值的判断和输入用户名密码是否匹配进行判断.

    struts2输入校验

    struts2输入校验 表单后台验证

    struts2(拦截器_文件上传_输入验证_国际化)

    struts2(拦截器_文件上传_输入验证_国际化)

    Ajax+Struts2实现验证码验证功能

    我们这里采用的是ajax+struts2来做的这个验证。 我们新建一个web工程。然后需要导入struts的相应包。之后我们需要写一个类来生成验证码。 博客地址:http://blog.csdn.net/sdksdk0/article/details/51755489

    传智播客struts2_3(拦截器_文件上传_输入验证_国际化).ppt

    传智播客struts2_3(拦截器_文件上传_输入验证_国际化).ppt

    struts2.1.8学习

    、Struts2 主要几句话: 1、Struts2 是由webwork2 发展来的而非Struts1,...7、Struts2 的输入验证可以对指定方法进行验证,解决Struts1 之痛 8、Struts2 提供了全局范围、包范围和Action 范围的国际化资源文件管理实现

    Struts2中对输入数据进行验证源码

    源码加载好之后运行的url是...default.action,绝对能运行,我QQ:459789479,有问题可以问我,源码中包括:国际化、对输入数据进行验证、Struts2中处理验证码等技术,还有对输入数据进行验证的学习说明

    struts2_validation

    Struts2提供了一些基于XWork Validation Framework的内建验证程序,它们大大简化了输入验证工作。 使用这些验证程序不需要编程,程序员只需要在一个XML文件里对验证程序应该如何工作做出声明就行了。需要声明的内容...

    struts2登录,以及输入校验的demo

    此为简单的struts2登录,以及输入校验的源代码!!

    struts2+spring整合登陆验证经典完整案例!

    struts2+spring整合登陆验证经典完整案例!期余JAR文件在struts2+spring整合登陆验证经典完整案例!(JAR)这个中,免积分下载! 部署Web应用请按如下步骤进行: 1. 进入reg_login路径下,将mysql.sql脚本中的语句...

    深入浅出Struts2源码(1-5章).rar

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...

    深入浅出Struts 2.rar 源码 全部例子

    书中介绍了如何利用Struts2来解决Web应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts2应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax的支持,等等。书中概念清晰...

    struts2讲义_吴峻申

    5.7 Struts2自定义标签实现图形验证功能 121 第6章 Struts2非JSP视图技术 125 6.1 velocity视图技术使用介绍 125 6.2 freemarker视图技术使用介绍 128 6.3 JasperReports报表视图技术使用介绍 130 第7章 Struts2类型...

    Struts2验证操作文档

    Strut2框架的类型转换利用了这种设计哲学.类型转换的要求是输入检验的子集.初期是重写ActionSupport类的validate方法,验证Action里的实体是否符合验证规则.

    servlet验证登陆与struts验证

    入门级的servlet登陆验证和struts2的输入合法性验证

Global site tag (gtag.js) - Google Analytics