`
wangguanqiu
  • 浏览: 13400 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Struts2验证框架

阅读更多

今天学习了一下Struts2验证框架,整理了点知识点。

1、 注册验证类型

Struts2为不同的验证要求提供不同的验证类型。一个验证类型,一般是有一个类来提供。这个类必须实现接口:com.opensymphony.xwork.validator.Validator,但我们在写自己的验证类型时,无需直接实现Validator接口,它有抽象类可供直接使用如ValidatorSupportFieldValidatorSupport等。

验证类型在使用之前,必须要在ValidatorFactorycom.opensymphony.xwork.validator. ValidatorFactory)中注册。使用配置文件validators.xml进行注册,要求把文件validators.xml放到ClassPath的跟目录中(/WEB-INF/classes)。我们的验证类型注册如下:

<validators>

    <validator name="required" class="com.opensymphony.xwork.validator.validators.RequiredFieldValidator"/>

    <validator name="requiredstring" class="com.opensymphony.xwork.validator.validators.RequiredStringValidator"/>

    <validator name="int" class="com.opensymphony.xwork.validator.validators.IntRangeFieldValidator"/>

    <validator name="date" class="com.opensymphony.xwork.validator.validators.DateRangeFieldValidator"/>

    <validator name="expression" class="com.opensymphony.xwork.validator.validators.ExpressionValidator"/>

    <validator name="fieldexpression" class="com.opensymphony.xwork.validator.validators.FieldExpressionValidator"/>

    <validator name="email" class="com.opensymphony.xwork.validator.validators.EmailValidator"/>

    <validator name="url" class="com.opensymphony.xwork.validator.validators.URLValidator"/>

    <validator name="visitor" class="com.opensymphony.xwork.validator.validators.VisitorFieldValidator"/>

    <validator name="conversion" class="com.opensymphony.xwork.validator.validators.ConversionErrorFieldValidator"/>

    <validator name="stringlength" class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator"/>

</validators>

注册验证类型的配置文件非常简单。它使用标签<validator>提供名-值对的形式注册。这样我们的验证文件就可以直接引用它的名字。

2、 开启Action的验证功能

 如果Action要使用验证框架的验证功能,它必须在配置文件中指定拦截器“validation”,它的定义如下:

<interceptor name="validation" class="com.opensymphony.xwork.validator.ValidationInterceptor"/>

我们的验证文件必须以ActionName-validation.xml格式命名,它必须被放置到与这个Action相同的包中。你也可以为这个Action通过别名的方式指定验证文件,它的命名格式为:ActionName-aliasname-validation.xml。“ActionName ”是我们Action的类名;“aliasname”是我们在配置文件(Struts.xml)中定义这个Action所用到的名称。这样,同一个Action类,在配置文件中的不同定义就可以对应不同的验证文件。验证框架也会根据Action的继承结构去查找Action的父类验证文件,如果找到它会去执行这个父类的验证。例如:BugAction-save-validation.xml,其中save为配置文件中定义的action 名称。

3、 实现验证文件:BugAction-save-validation.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE validators PUBLIC

          "-//OpenSymphony Group//XWork Validator 1.0.2//EN"

          "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd" >

<validators>

<!-- 概要 -->

  <field name="bug.summary">

<field-validator type="requiredstring">

<param name="trim">true</param>

<message key="invalid.summary" />

</field-validator>

</field>

<!-- 所属项目 -->

  <field name="bug.projectid">

<field-validator type="requiredstring">

<param name="trim">true</param>

<message key="invalid.projectid" />

</field-validator>

</field>

</validators>说明:

1)、<field>标签代表一个字段,它的属性“name”和页面输入框的“name”属性必需完全一致,其实它也就是我们的表达式语言。

2)、<field-validator>标签定义我们的验证规则,type属性的值就是就是我们前面定义的验证类型。

3)、验证文件中,字段的数据是通过表达式语言从我们的值堆栈(OgnlValueStack)中取得,一般是ActionModel对象。例如:我们的字段“user.age”,它会通过ActiongetUser().getAge()来取得用户输入的年龄,再来根据验证的类型“int”和最大值最小值的参数来判断输入的数据是否能通过验证。

4)、不管验证是否通过,我们的Action都会执行,但如果验证没有通过,它不会调用Actionexecute()方法。

4、 显示Action的验证错误信息

如果用户输入的数据验证没有通过,我们需重新返回输入页面,并给出错误信息提示。拦截器“validation”为我们实现了这个功能。它首先验证用户输入的数据,如果验证没有通过将不执行我们Actionexecute()方法,而是将请求重新返回到输入页面。

Struts.xml配置如下:

<action name="addsave" class="com.bug.bug.BugAction"

method="create">

<result type="chain">list</result>

<result name="input" >/bug/bug/edit.jsp</result>

</action>

错误信息也就是我们验证文件中<message>标签里的数据。ActionSupport类已实现了此接口,这样在应用中我们的Action只要继承ActionSupport类就可以了。

我们在jsp页面显示错误提示信息,如下:

<div style="color:red;">

<s:fielderror />表单校验遇到的问题

<s:actionmessage/>action中的提示信息

<s:actionerror/>action中的错误信息

<s:property value="OurWorkMessage" /> 是自定义的。

</div>

<!--EndFragment-->

<!--EndFragment-->
分享到:
评论
1 楼 wangguanqiu 2009-10-14  

补充一下:BugAction-save-validation.xml中
<message key="invalid.projectid" />消息键值将用于在BugAction类指定的资源文件中查找文本. 与BugAction在同一目录中文件名为BugAction.properties

相关推荐

    struts2验证框架

    Struts2 验证框架详解 Struts2 验证框架是基于 Java 语言的 Web 应用程序框架,提供了一个强大的验证机制,以确保用户输入的数据满足业务逻辑的要求。在 Struts2 中,验证机制是通过 validator 来实现的,该机制...

    struts2验证框架示例

    这个“struts2验证框架示例”提供了深入理解并实际操作Struts2验证功能的机会。 首先,让我们了解一下Struts2验证框架的基本概念。验证框架基于两个主要组件:Validation拦截器和Action类中的验证配置。Validation...

    struts2验证框架简单示例

    在Struts2中,验证框架是处理用户输入验证的关键部分,它确保了从客户端接收到的数据的质量和准确性。本示例将深入探讨Struts2验证框架的基本用法,特别适合初学者理解和掌握。 ### 一、Struts2验证框架概述 ...

    struts2验证框架简单实例

    在Struts2框架中,验证框架是其一个重要组成部分,用于确保输入数据的准确性和完整性,从而防止因无效数据导致的程序异常或错误。本实例将带你深入理解Struts2验证框架的使用,以及在实际操作中可能遇到的问题和解决...

    struts2 验证框架

    Struts2验证框架是Java开发中的一个关键组件,主要用于处理Web应用中的用户输入验证。它提供了灵活且强大的机制,确保用户提交的数据符合预期格式和业务规则。Struts2的验证框架是基于Action类和XML配置文件的,可以...

    Struts2 验证框架

    验证框架是Struts2中的一个重要组成部分,用于处理用户输入的数据验证。在这个框架中,验证逻辑与业务逻辑分离,使得代码更易于管理和扩展。 在Struts2验证框架中,主要有两种验证方式:客户端验证和服务器端验证。...

    struts2验证框架参数

    在深入探讨Struts2验证框架参数之前,我们首先简要回顾一下Struts2框架本身。Struts2是基于MVC(Model-View-Controller)设计模式的Java Web应用框架,它提供了一种灵活的方式来构建可扩展的企业级Web应用程序。...

    struts2验证框架的使用和扩展

    在Struts2中,验证框架是其核心特性之一,它负责确保用户输入的数据符合预定义的规则,从而保证数据的准确性和安全性。本文将深入探讨Struts2验证框架的使用和扩展。 1. **Struts2验证框架基础** - **Action与...

    struts2 -2.3.15.3-验证框架简单实现mode

    在Struts2的2.3.15.3版本中,集成的验证框架是其核心功能之一,帮助开发者确保用户输入的数据质量和安全性。本篇将详细讲解如何在Struts2中实现一个简单的验证框架模式。 首先,我们需要了解Struts2验证框架的基本...

    Struts2极速表单验证框架(注解)

    本篇将详细介绍Struts2的极速表单验证框架,特别是其注解方式的使用。 ### 1. 表单验证的重要性 在Web应用程序中,验证用户输入的数据是必不可少的,因为不正确的数据可能导致业务逻辑错误,甚至安全漏洞。Struts2...

    struts2最全验证框架

    ### Struts2 最全验证框架知识点详解 #### 一、Struts2 验证框架概述 Struts2 是一个基于MVC模式的Java Web开发框架,它提供了丰富的功能来简化Web应用的开发过程。其中,Struts2的验证框架是其重要的组成部分之一...

    struts7验证框架 struts7验证框架

    Struts7验证框架是用于Java Web开发中的一个关键组件,主要负责处理用户输入数据的验证。这个框架在学习和实际项目开发中具有广泛的应用,因为它能够有效地提高代码的可维护性和减少开发工作量。 传统的Struts框架...

    struts2简单验证框架

    用户名、密码、年龄、电话号、email、日期验证、合法链接 的验证例子。

    Struts验证框架配置详解

    首先,Struts验证框架的配置涉及到两个关键的JAR包:`struts2-core.jar` 和 `struts2-validation-plugin.jar`。`struts2-core.jar` 是Struts2框架的核心库,包含了Struts2的基础功能;而`struts2-validation-plugin....

    struts1验证框架相当好的经典例子

    在Struts1中,验证框架是处理用户输入数据校验的重要组成部分,它帮助开发者确保用户提交的数据符合预定义的规则,从而提高应用程序的安全性和用户体验。下面将详细介绍Struts1验证框架的使用。 首先,我们来看一下...

    Struts2中使用验证框架的简单例子

    在Struts2中,验证框架是处理用户输入数据的有效性和完整性的关键组件。本篇文章将深入探讨如何在Struts2中使用验证框架,并通过一个简单的例子来演示其工作原理。 ### 一、Struts2验证框架概述 Struts2的验证框架...

    struts2验证文档

    #### 三、Struts2验证框架概述 Struts2框架内置了一套强大的验证系统,它基于WebWork验证框架进行扩展和优化。该验证系统支持前端和后端验证,并且可以通过XML配置文件或注解的方式定义验证规则。下面将具体介绍如何...

Global site tag (gtag.js) - Google Analytics