`
1happy10
  • 浏览: 19962 次
  • 性别: Icon_minigender_1
  • 来自: 感德
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Struts2中action和field级别错误处理

阅读更多
Struts2中action和field级别错误处理

         在 struts2中,一般的action都继承ActionSupport这个类,可以重写public void validate()来进行数据校验,对应提示信息来说一般有两个比较常用的方法就是this.addFieldError("field name","error message"); 和 this.addActionError("error message");两个方法。由于在ActionSupport这个类实现了ValidationAware接口,接口里面声明了这两个方法:
1public void addActionError(String anErrorMessage) {
2        validationAware.addActionError(anErrorMessage);
3    }
4
5    public void addActionMessage(String aMessage) {
6        validationAware.addActionMessage(aMessage);
7    }
    而ValidationAwareSupport实现了ValidationAware接口,通过查看ValidationAwareSupport源码中的两个错误提示方法:    private Collection actionErrors;
    private Map fieldErrors;
1public synchronized void addFieldError(String fieldName, String errorMessage) {
2        final Map errors = internalGetFieldErrors();
3        List thisFieldErrors = (List) errors.get(fieldName);
4
5        if (thisFieldErrors == null) {
6            thisFieldErrors = new ArrayList();
7            errors.put(fieldName, thisFieldErrors);
8        }
9
10        thisFieldErrors.add(errorMessage);
11    }
1public synchronized void addActionError(String anErrorMessage) {
2        internalGetActionErrors().add(anErrorMessage);
3    }
4     注:由于fielderrors级别是Map类型,所以this.addFieldError("field name","error message"); ,而actionerror级别是Collection级别,所以this.addActionError("error message");
    在实际的项目开发应用中如果同时用到field和action错误级别的时候,在jsp页面中的表单有用到struts2的标签来实现的话,就有可能对于同一个表单,既有filed级别error提示又有action级别的error提示,这时,可以根据项目的实际需要来取舍,但是如果两个都要同时存在的时候,只显示action级别的error,而不显示field级别的action,由于struts2标签默认就是显示field级别的error,所以要修改模板,加入theme="simple"即可,这时struts2表单那标签默认的显示field错误提示失效,使用这个模板的好处还可以和普通的html一样随便设计版面。例如:<s:form action="RegisterAction"theme="simple" >
    PS:要显示action级别的错误提示,需要在jsp页面中的表单里面加入<s:actionerror/>.
分享到:
评论

相关推荐

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

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

    struts2 validation

    Struts2 Validation使用了Action级别和Field级别两种验证方式。Action级别验证针对整个Action类,而Field级别验证则针对Action类中的每个字段。在提交表单时,Struts2会自动调用配置好的Validator拦截器,对用户...

    struts2输入校验

    在Struts2中,输入校验通常分为两种方式:客户端校验和服务器端校验。客户端校验主要通过JavaScript在用户端进行,可以提供即时反馈,但安全性较低,因为用户可以禁用JavaScript或绕过校验。服务器端校验则是在...

    Struts2输入校验总结

    输入校验的流程在Struts2中是结构化的,涉及多个步骤: 1. **类型转换**:首先,Struts2框架使用类型转换器将HTTP请求中的字符串参数转换为相应的Java类型,如Integer、Date等,并将这些值设置为Action类的属性。 ...

    struts2 入门书籍

    - **Action配置**:Action是Struts2中处理用户请求的关键组件,通过配置文件或注解定义其行为。 #### 3. 表单验证与国际化 - **表单验证**:Struts2提供了内置的验证机制,允许开发者在Action中定义验证规则,或者...

    Struts2_Validation

    1. **Action和Form Bean**:在Struts2中,Action类代表了业务逻辑,而Form Bean(通常称为ActionForm)则封装了来自页面表单的用户输入。验证过程通常发生在Action执行之前,对Form Bean的属性进行检查。 2. **...

    李顺利Struts2表单验证后回显错误信息 标签使用

    李顺利老师通过他的讲解,让我们深入理解了如何在Struts2中使用特定的标签来实现这一目标。 首先,Struts2提供了`&lt;s:fielderror&gt;`和`s:actionerror`这两个标签用于显示验证错误。`&lt;s:fielderror&gt;`主要用于显示单个...

    Struts2_1100_SimpleDataValiation

    本教程“Struts2_1100_SimpleDataValidation”聚焦于Struts2中的数据验证功能,这是一个核心特性,用于确保用户输入的数据符合预设的业务规则,从而提高应用的安全性和可靠性。 在Struts2框架中,数据验证分为两个...

    struts2官方例子7-表单验证 xml形式的验证

    在Struts2中,表单验证是非常重要的一个环节,它确保了用户输入的数据符合预设的规则,从而保证了应用程序的数据质量和安全性。本示例主要讲解的是使用XML文件进行表单验证的方法。 首先,让我们理解表单验证的基本...

    struts2 简单数据校验

    在Struts2中,数据校验是一个重要的功能,它确保用户输入的数据符合预设的规范,从而保证系统的稳定性和安全性。这篇博客“Struts2 简单数据校验”可能详细介绍了如何在Struts2框架中实现对用户输入的有效性验证。 ...

    struts2类型转换和国际化

    在Struts2中,类型转换和国际化是两个重要的特性,用于处理数据类型之间的转换以及多语言环境下的内容显示。 **类型转换**是Struts2处理请求参数与Action类属性之间数据类型不匹配的过程。当用户通过表单提交请求时...

    struts2 表单验证验证信息显示位置及效果

    在Struts2中,表单验证是确保数据输入有效性和一致性的关键环节,它有助于提升用户体验并减少服务器端处理错误。这篇博客文章“Struts2 表单验证验证信息显示位置及效果”探讨了如何有效地实现和展示Struts2中的表单...

    如何自定义Struts2表单验证后的错误信息显示格式/样式

    在Struts2框架中,表单验证是保证数据正确性和完整性的重要环节。默认情况下,当表单验证失败时,Struts2会返回错误消息,并在页面上以特定的格式显示这些错误。然而,这种默认的错误信息显示可能不符合每个开发者或...

    struts2 validate 验证

    Struts2的验证分为两种类型:Action级别验证和Field级别验证。Action级别验证是对整个表单数据的验证,而Field级别验证则是针对表单中的每个字段进行单独验证。这两种验证可以通过编写Java代码或者使用XML配置来...

    struts2简单例子源码

    在这个简单例子中,我们可能会看到在Action类的属性上使用了Struts2的验证注解,如`@Valid`和`@Field`,或者有一个对应的XML验证文件(通常命名为actionName-validation.xml)。这些注解或XML规则定义了字段的验证...

    Struts2的输入校验

    在Struts2中,输入校验是确保数据安全、准确和有效的重要环节。本篇文章将深入探讨Struts2的输入校验机制及其相关知识点。 **输入校验的重要性** 输入校验是Web应用开发中的关键步骤,它可以防止恶意用户提交无效或...

    Struts2学习笔记

    在Struts2中,可以通过多种方式来定制Action的行为,例如,可以覆盖默认的执行方法,或者使用拦截器(Interceptor)来改变请求处理流程。这使得Struts2更加灵活,可以根据项目需求进行高度定制。例如,你可以使用`@...

    Struts2简单数据校验源码 20120417

    在Struts2中,数据校验是确保输入数据正确性和完整性的关键环节,它可以帮助开发者预防潜在的数据错误,提高应用的健壮性。本资料"Struts2_1100_SimpleDataValiation"提供了关于Struts2简单数据校验的源码,这将有助...

Global site tag (gtag.js) - Google Analytics