`
兵古1992
  • 浏览: 434 次
文章分类
社区版块
存档分类
最新评论

struts2验证框架

 
阅读更多
struts2.0 验证

    博客分类:
    Struts2学习

正则表达式框架XMLfreemarkerStruts

一、struts2.0的输入验证:
A、手动验证:
1)重写validate()
2)重写validateXxx()
B、使用验证框架
Action类都要继承ActionSupport类

二、为一个Action设置多个逻辑处理:

为了更具有针对性的处理业务逻辑与针对性的进行输入校验,可以采用指定业务逻辑处理方法的方法,即对同一个Action设置多个逻辑处理方法,也就是说对于某个表单,我们可以指定在Action中让哪个方法来处理它的相关业务

解决方法:struts.xml中通过method属性指定处理其逻辑的方法

例如:
LoginAction中有login()和regester()两个业务处理方法:
Html代码  收藏代码

    <action name="login" class="com.oristnad.login.LoginAction" method="login"> 
    <action name="reg" class="com.oristnad.login.LoginAction"   method="regist"> 



A、如果重写了ActionSupport的validate()方法,则该方法会校验所有的处理逻辑。
B、为了实现校验指定逻辑方法,可以在Action中增加一个validateXxx()方法,其中Xxx即是Action对应的处理逻辑方法。同时不重写validate方法

例如:
  validateRegist()方法---专门校验regist()方法,即校验reg表单提交的内容
  validateLogin()---专门校验login()方法,即校验login表单提交的内容

三、struts2的输入校验流程:
1)、类型转换器负责对字符串的请求参数执行类型装换,并将这些值设置为Action的属性值
2)、在类型转换过程中如果出现异常,则将异常信息保存到ActionContext中,conversionError拦截器负责将其封装到fieldError里,然后执行第3步;如果没有异常,则直接进入第3步
3)、如果有validateXxx()方法,则调用该方法
4)、调用Action类中的validate()方法
5)、如果经过上面4步都没有出现fieldError,将调用Action里处理用户请求的处理方法;
     如果出现了fieldError,将转入input逻辑视图所指定的视图资源。
      
四、struts2的验证框架初步:
       只需要为Action指定一个校验文件即可,该文件指定了Action的属性必须满足怎样的规则。
每个Action都有一个校验文件,命名规则:Action名字-validation.xml;
该文件保存在与该Action类的相同路径下。
1、配置文件:
Xml代码  收藏代码

    <?xml version="1.0" encoding="GBK"?> 
    <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator1.0.2//EN"  
    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> 
    <validators> 
         <field name="username"> 
            <field-validator type="requiredstring"> 
                <param name="trim">true</param> 
                <message>用户名不能为空</message> 
             </field-validator> 
          </field> 
          <field name="passwd"> 
             <field-validator type="requiredstring"> 
                 <message key="error.password"></message> 
             </field-validator> 
         </field> 
    </validators> 
      


1)<field name="username">--要验证的字段
2)<field-validator type="requiredstring">--验证规则(校验器)
3)<param name="trim">true</param>--校验参数
4)<message>用户名不能为空</message>--验证失败的输出信息

2、配置文件中使用国际化显示错误信息:

A、message元素的key属性:<message key="error.password"></message>
B、使用${getText("message-key")}: <message>${getText("error.username")}</message>

3、客户端验证:
在<s:form>表单中添加validate="true"即可,struts2客户端验证仍是基于JavaScript的,struts2将服务器验证转为客户端验证。
 
<s:form action="login" validate="true">
  
注意:
      A、如果验证文件中错误信息使用<message key="error.password"></message>形式输出的话,则页面会出现FreeMarker template error!的错误。
       故必须使用${getText("message-key")}形式
      B、不是所有的服务器端验证都可以转为客户端验证

4、校验器的配置风格:

1)字段校验器:字段优先
字段的校验遵循以下规则:

<validators>
Html代码  收藏代码

        <field name="被校验的字段名"> 
           <field-validator type="校验器名"> 
               <param name="参数名">参数值</param> 
               <message>校验失败的提示信息</message> 
        </field-validator> 
        </field>    
    </validators>      


     
2)非字段校验器配置风格:校验器优先

<validators>
Xml代码  收藏代码

    <validator type="校验器"> 
       <param name="fieldName">需要被校验的字段</param> 
       <param name="参数">参数值</param> 
       <message>校验失败的提示信息</message> 
    </validator> 
    /validators> 



5、常用的校验器:
required--必填校验器
requiredstring--必填字符串校验器
int--整数校验器
double--双精度校验器
date--日期校验器
expression--表达式校验器
email--电子邮件校验器
url--网址校验器
stringlength--字符串长度校验器
regex--正则表达式校验器


Struts2 验证框架不起作用的几种可能
1、命名是否符合约定:
<actionClass>-validation.xml
<actionClass>-<actionAlias>-validation.xml
2.   validation.xml的标签是否正确。
3.   fieldName 命名是否和jsp以及 action中的属性一致
4.检查是否在同一个field里面配置了重复的参数,重复的参数也可能会使你的信息显示不出来
5、有可能是版本问题,今天用2.1.16的版本做了很久都不起作用,最后改成2.0.14版本,问题解决。


来源:http://www.talentdigger.cn/home/space.php?uid=1089&do=blog&id=10350





之所以转载这篇文章,是因为前一阵子,有个单位考我Struts2的验证,问到当error出现的时候,怎么写入ActionContext,其实人家的问题问的很深,我理解的是问Struts2框架验证怎么讲验证信息返回客户端,当时我是按照Servlet的write方法回答的,后来觉得没必要这么回答,只要简单的把其验证的流程说一下就好了!真问道实现机制……不会就不会了!

不过Validate()方法里面的this.addFieldError()方法要是能表述出来就更清晰了,当时我把这个方法名字给忘记了…… 
分享到:
评论

相关推荐

    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的验证框架是其重要的组成部分之一...

    struts2简单验证框架

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

    Struts验证框架配置详解

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

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

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

    struts7验证框架 struts7验证框架

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

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

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

    struts2验证文档

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

Global site tag (gtag.js) - Google Analytics