`

Struts2中action的validate()方法

阅读更多
问题:
想问一下,对于validate方法中验证出现错误,手动的添加字段级别错误或者动作级别错误,这些错误信息保存在哪里了,除了struts标签取出,还有别的方法没? 假如对于INPUT ,我重定向到别的页面那么错误信息能提取出来吗?为什么?

解答:
添加的错误信息都在当前的Action对象上吧
在validate一般都是用this.addFieldError()这个方法吗,thiis就是当前Action对象
除了用标签,还可以用EL表达式等取,比如:${errors['错误字段名']},这个可以指定取出哪个错误消息
最后对于INPUT,在别的页面也能取出来,这个可能是Struts2的一种机制吧,后台Action对象传给前台页面
希望对你有帮助

我的补充:
补充一下,下面是我做的一个例子:
这个是修改密码的页面对应的action的validateChangePassword()方法:
this.addFieldError("pwd.oldpwd", "请输入登录时的密码");
如果在<result name="input">中配置的不是修改密码的那个页面,出错的信息也能显示出来。


struts2中action的validate()方法的验证机制:

举例说明:
在访问Action的 login方法时,struts2会首先查找是否存在 validateLogin() 方法,
如果存在,则先执行 validateLogin() 方法。
如果在  validateLogin()方法中,遇到 this.addFieldError()方法,
则自动返回一个名称为"input"的字符串,转向struts.xml中配置的对应的action的
<result name="input"> 指定的页面中去。


struts2中访问action的机制:(当package目录只为2级时)

访问Acton时,Struts2首先会根据 访问的URL,去找对应的Acton
如果找不到,则会到根目录下去找。
如果还找不到,则回报错。
注意:如果某个Action的访问地址是在一个包下面(这个包不是默认的包),则只能通过指定的URL访问到这个Action。


------------------------
Action名搜索路径
  1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action

2.首先寻找namespace为/path1/path2/path3的package,如果不存在这个package则执行步骤3;如果存在这个package,则在这个package中寻找名字为test的action,当在该package下寻找不到action 时就会直接跑到默认namaspace的package里面去寻找action(默认的命名空间为空字符串“” ) ,如果在默认namaspace的package里面还寻找不到该action,页面提示找不到action

3.寻找namespace为/path1/path2的package,如果不存在这个package,则转至步骤4;如果存在这个package,则在这个package中寻找名字为test的action,当在该package中寻找不到action 时就会直接跑到默认namaspace的package里面去找名字为test的action ,在默认namaspace的package里面还寻找不到该action,页面提示找不到action

4.寻找namespace为/path1的package,如果不存在这个package则执行步骤5;如果存在这个package,则在这个package中寻找名字为test的action,当在该package中寻找不到action 时就会直接跑到默认namaspace的package里面去找名字为test的action ,在默认namaspace的package里面还寻找不到该action,页面提示找不到action

5.寻找namespace为/的package,如果存在这个package,则在这个package中寻找名字为test的action,当在package中寻找不到action或者不存在这个package时,都会去默认namaspace的package里面寻找action,如果还是找不到,页面提示找不到action。


3.Action配置中,个配置项的默认值
1.如果没有指定Action的class,默认值为ActionSupport。
2.如果没有指定Action的method属性,默认值为execute()方法。
3.如果没有指定result的name属性,默认值为“success“




引自:
http://zhidao.baidu.com/question/441168510.html

http://gongqi.iteye.com/blog/749920

http://johnjobe.iteye.com/blog/1573301







--
分享到:
评论

相关推荐

    struts中ActionForm的validate方法使用小得

    本文将详细讨论如何在Struts中使用ActionForm的`validate`方法进行数据验证。 `validate`方法是在ActionForm中定义的一个可选方法,用于在提交表单数据后验证用户输入的有效性。这个方法通常会在调用Action的`...

    jquery.validate 与 struts2的整合使用

    在Web开发中,jQuery Validate和Struts2是两个非常重要的工具。jQuery Validate是一个轻量级的JavaScript库,用于对HTML表单进行验证,确保用户输入的数据符合预设的规则。而Struts2是一个基于MVC设计模式的Java Web...

    Struts2用validate方法进行表单验证

    在Struts2中,我们可以利用validate方法进行高效且灵活的前端数据验证,确保用户输入的数据满足业务规则,从而提升应用的安全性和用户体验。 在Struts2中,表单验证主要依赖于两个核心组件:Action类和Validator...

    struts2 对action中的所有方法进行校验

    下面我们将深入探讨Struts2如何对Action中的所有方法进行校验。 首先,Struts2的校验机制基于两个主要组件:Validator和ValidationInterceptor。Validator负责定义校验规则,而ValidationInterceptor则是在执行...

    Struts2的validate验证框架

    这个validate验证框架中的actiionerror级别的错误的验证提示,并包含了如何在一个Action中处理多个业务逻辑,(struts1.x 中的DispatcheAction),例子比较简单,希望对大家学习struts有所帮助。

    Struts的验证框架Validate使用[2]

    在本文中,我们将深入探讨Struts的验证框架Validate的使用方法,以及它在实际开发中的应用。 1. **验证框架概述** Struts的验证框架是Struts 1.x中的核心功能之一,它允许开发者定义一组验证规则,并在用户提交...

    struts2对Action提交方法进行验证

    在实际的开发项目中,我们通常采用的是js对我们输入的值进行验证,例如,用户名的长度,密码长度,等等。但是这样做,不好之处就是我们可以...本附件为【Struts2】★☆之struts2对Action提交方法进行验证,下载源码!

    struts2 validate 验证

    在Struts2中,`validate`是用于处理用户输入验证的重要机制,它可以帮助开发者确保从客户端提交的数据满足预设的业务规则,从而提高应用程序的安全性和用户体验。 1. **Struts2 验证基础** Struts2的验证分为两种...

    Validate_code.rar_struts valida_struts valida_struts validate_v

    6. **Struts Action Classes**:在执行业务逻辑之前,需要调用`validate()`方法对表单数据进行验证。 通过`struts_valida`和`struts_validate`的标签,我们可以推断这个示例可能涵盖了Struts验证框架的基本用法,...

    jquery validate配合struts2简单整改

    在这个例子中,如果前端提交的数据未通过Struts2的后端验证,ActionSupport的validate()方法会被调用,并将错误信息添加到ActionContext中,然后在JSP页面上显示。 为了将前后端验证结果进行有效传递,我们需要在...

    struts1.2 validate 源代码 实现

    3. **配置Struts-config.xml**:在项目的`struts-config.xml`文件中,需要配置你的ActionForm类和Action类,并指定`validate`方法将使用的表单字段。 ```xml &lt;action-mappings&gt; &lt;action name="login" path="/...

    Struts2的Action多个方法配置和验证

    在Struts2中,Action是核心组件,它负责接收HTTP请求并处理业务逻辑。这篇博客主要讨论了如何配置Struts2 Action中的多个方法以及如何进行数据验证。 首先,一个Action类可以包含多个方法,每个方法对应一个特定的...

    validate in struts2

    在Struts2中,验证是一个关键部分,用于确保用户输入的数据是有效和安全的。本篇文章将深入探讨Struts2中的验证机制。 ### 1. 验证框架概述 Struts2的验证框架允许开发者定义验证规则,并在用户提交表单时执行这些...

    更加复杂的Struts validate验证

    9. **注解驱动的验证**:在Struts2中,除了传统的validate()方法,还可以使用注解进行验证,如@Validated、@NotBlank等,这样可以减少代码量并提高可读性。 10. **验证流程**:当用户提交表单时,Struts会先调用...

    STRUTS和WEBWORK在VALIDATE的区别

    在WebWork中,验证逻辑可以放在Action类的方法上,使用注解@Validate进行标记。此外,WebWork支持JSR-303/JSR-349(Bean Validation)标准,可以直接利用注解在模型对象上定义验证规则。这样的设计使得业务逻辑和...

    Struts2+jquery.validate框架实现用户名是否存在

    ### Struts2与jQuery.validate框架简介 #### Struts2框架 Struts2是Apache软件基金会的一个开源项目,它是Struts1的升级版,提供了一个用于构建企业级Java Web应用的强大MVC框架。Struts2的核心组件包括拦截器、...

    Struts2中validate数据校验的两种方法详解附Struts2常用校验器

    本篇文章将详细介绍Struts2中两种数据校验方法以及常用的校验器。 1. **Action中的validate()方法** Struts2提供了`Validateable`接口,它包含一个`validate()`方法。当你创建的Action类继承自`ActionSupport`,...

    Struts的验证框架Validate使用[1]

    Struts的验证框架Validate是Apache Struts框架中的一个重要组成部分,主要用于处理用户输入的数据验证。在Web应用程序中,数据验证是确保用户提交的信息符合业务规则的关键步骤,防止非法数据进入数据库或引发程序...

    Struts2_validate_6_8.rar_Java 8

    在Struts2中,数据验证主要通过两个部分来实现:Action类中的验证逻辑和配置文件中的验证规则。Action类是业务逻辑的核心,开发者可以在其中定义验证方法,这些方法会在用户提交表单后被调用,检查输入是否有效。...

Global site tag (gtag.js) - Google Analytics