`
1028826685
  • 浏览: 940752 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

基于XML配置方式实现对action的所有方法进行输入校验

阅读更多

知识点:

使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validation.xml,其中ActionClassName为action的简单类名,-validation为固定写法。如果Action类为cn.itcast.UserAction,那么该文件的取名应为:UserAction-validation.xml。下面是校验文件的模版:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
    <field name="username">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>用户名不能为空!</message>
        </field-validator>
    </field>
</validators>

<field>指定action中要校验的属性,<field-validator>指定校验器,上面指定的校验器requiredstring是由系统提供的,系统提供了能满足大部分验证需求的校验器,这些校验器的定义可以在xwork-2.x.jar中的com.opensymphony.xwork2.validator.validators下的default.xml中找到。
<message>为校验失败后的提示信息,如果需要国际化,可以为message指定key属性,key的值为资源文件中的key。
在这个校验文件中,对action中字符串类型的username属性进行验证,首先要求调用trim()方法去掉空格,然后判断用户名是否为空。
提供input视图。

实现步骤:

第一步:编写action并且需要继承ActionSupport
public class XMLValidates extends ActionSupport{

private String username;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}
public String save()
{

return "message";
}
}

第二步: 编写验证配置文件名:XMLValidates-validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
<!-- username属性名 -->
    <field name="username">
        <field-validator type="requiredstring">       
            <param name="trim">true</param>
            <message>用户名不能为空!</message>
        </field-validator>
    </field>
</validators>

第三步:配置stucts.xml文件
   <action name="validatexml_*" class="com.liyong.XMLValidates.XMLValidates" method="{1}">
        <!-- 下面的input视图是当存在验证错误或提交参数是类型转换出错 -->
        <result name="input">/index3.jsp</result>
        <result name="message">/WEB-INF/page/message.jsp</result>
        </action>

第四步:编写Input视图

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>输入校验</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
  </head>
  <body>
<!-- 以下标签是用来输出错误信息 -->
   <s:fielderror/>
   <form action="${pageContext.request.contextPath}/person/validatexml_save.action" method="post">
   用户名:<input type="text" name="username"/>不能为空<br/>
   <input type="submit" value="提 交"/></form>
  </body>
</html>
第五步:部署

注意:此种情况会对所有action中所有方法进行验证

附:

编写校验文件时,不能出现帮助信息
在编写ActionClassName-validation.xml校验文件时,如果出现不了帮助信息,可以按下面方式解决:
windwos->preferences->myeclipse->files and editors->xml->xmlcatalog
点“add”,在出现的窗口中的location中选“File system”,然后在xwork-2.1.2解压目录的src\java目录中选择xwork-validator-1.0.3.dtd,回到设置窗口的时候不要急着关闭窗口,应把窗口中的Key Type改为URI 。Key改为http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd


struts2提供的校验器列表:

系统提供的校验器如下:
required (必填校验器,要求field的值不能为null)
requiredstring (必填字符串校验器,要求field的值不能为null,并且长度大于0,默认情况下会对字符串去前后空格)
stringlength(字符串长度校验器,要求field的值必须在指定的范围内,否则校验失败,minLength参数指定最小长度,maxLength参数指定最大长度,trim参数指定校验field之前是否去除字符串前后的空格)
regex(正则表达式校验器,检查被校验的field是否匹配一个正则表达式.expression参数指定正则表达式,caseSensitive参数指定进行正则表达式匹配时,是否区分大小写,默认值为true)
int(整数校验器,要求field的整数值必须在指定范围内,min指定最小值,max指定最大值)
double(双精度浮点数校验器,要求field的双精度浮点数必须在指定范围内,min指定最小值,max指定最大值)
fieldexpression(字段OGNL表达式校验器,要求field满足一个ognl表达式,expression参数指定ognl表达式,该逻辑表达式基于ValueStack进行求值,返回true时校验通过,否则不通过)
email(邮件地址校验器,要求如果field的值非空,则必须是合法的邮件地址)
url(网址校验器,要求如果field的值非空,则必须是合法的url地址)
date(日期校验器,要求field的日期值必须在指定范围内,min指定最小值,max指定最大值)
conversion(转换校验器,指定在类型转换失败时,提示的错误信息)
visitor(用于校验action中的复合属性,它指定一个校验文件用于校验复合属性中的属性)
expression(OGNL表达式校验器,expression参数指定ognl表达式,该逻辑表达式基于ValueStack进行求值,返回true时校验通过,否则不通过,该校验器不可用在字段校验器风格的配置中)

校验器的使用例子:
required  必填校验器
<field-validator type="required">
       <message>性别不能为空!</message>
</field-validator>

requiredstring  必填字符串校验器
<field-validator type="requiredstring">
       <param name="trim">true</param>
       <message>用户名不能为空!</message>
</field-validator>

stringlength:字符串长度校验器
<field-validator type="stringlength">
<param name="maxLength">10</param>
<param name="minLength">2</param>
<param name="trim">true</param>
<message><![CDATA[产品名称应在2-10个字符之间]]></message>
</field-validator>
email:邮件地址校验器
<field-validator type="email">
<message>电子邮件地址无效</message>
</field-validator>

regex:正则表达式校验器
<field-validator type="regex">
     <param name="expression"><![CDATA[^1[358]\d{9}$]]></param>
     <message>手机号格式不正确!</message>
</field-validator>
int:整数校验器
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>年龄必须在1-150之间</message>
</field-validator>

字段OGNL表达式校验器
<field name="imagefile">
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[imagefile.length() <= 0]]></param>
<message>文件不能为空</message>
</field-validator>
</field>
分享到:
评论

相关推荐

    22基于XML配置方式实现对action的所有方法进行校验.zip

    本主题聚焦于如何通过XML配置文件实现对Action类中所有方法的校验。XML配置是Struts2框架的核心组成部分,允许开发者精确地定义应用的行为。 在Struts2中,我们通常使用Struts.xml或struts-config.xml文件来配置...

    23基于XML配置方式实现对指定action方法校验.zip

    - 视频教程`23基于XML配置方式实现对指定action方法校验.avi`会逐步演示如何创建XML配置文件,定义验证规则,配置Action和Interceptor,以及如何在实际运行中查看和处理校验失败的情况。 通过上述步骤,我们可以...

    基于XML配置方式实现对指定action方法校验.rar

    标题中的“基于XML配置方式实现对指定action方法校验”是指在软件开发中,特别是Java Web应用程序中,通过XML配置文件来定义并执行对特定Action(控制器)方法的数据验证过程。这种验证通常是为了确保用户输入的数据...

    19对Action中所有方法进行输入校验.zip

    "19对Action中所有方法进行输入校验.zip"这个压缩包文件可能包含一个视频教程,教导开发者如何在Struts2的Action中对所有方法进行输入校验。 在Struts2中,输入校验通常通过以下几种方式进行: 1. **注解验证**:...

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

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

    Struts2输入校验总结

    1. **编写校验配置文件**:为每个需要校验的Action编写一个名为`actionClassName-validation.xml`的配置文件,或针对特定方法的`actionClassName-methodName-validation.xml`文件。 2. **配置文件位置**:这些配置...

    struts2输入校验深入总结

    Struts2提供了多种方式进行输入校验,包括Action级别校验、拦截器级别校验以及基于Validator框架的校验。 二、Action级别校验 Action级别校验是在Action类中定义校验逻辑,通常通过在Action类的属性上添加注解实现...

    struts2中的输入校验

    - **全局校验配置文件**:全局校验配置文件(如`ActionName-validation.xml`)位于Action类同级目录下,对Action类的所有方法进行校验。每个需要校验的Action类都有自己的配置文件。 - **XML配置结构**:XML配置...

    Struts2的输入校验

    - 总是对所有用户输入进行校验,即使某些数据看起来是可信的,因为安全漏洞往往源于未校验的输入。 总之,Struts2的输入校验是其强大功能的一部分,开发者可以根据项目需求选择合适的验证方式,以确保应用的安全和...

    struts2输入校验总结

    - 校验配置文件通常以`action类名-validation.xml`命名,如果需要针对特定方法进行校验,可以命名为`action类名-name属性名-validation.xml`。 2. **配置文件位置**: - 配置文件应放置在与Action类相同的包路径下...

    struts2输入校验

    本文将深入探讨Struts2中的输入校验机制,以及如何对指定方法进行输入校验。 在Struts2中,输入校验通常分为两种方式:客户端校验和服务器端校验。客户端校验主要通过JavaScript在用户端进行,可以提供即时反馈,但...

    Struts2 输入校验

    4. 避免过度校验:不要对所有输入都进行严格的校验,以免增加不必要的复杂性。 总结,Struts2的输入校验机制是保证应用程序健壮性的关键组成部分。开发者可以根据项目的具体需求,灵活选择合适的方法来实施输入校验...

    使用struts2进行输入校验

    本篇文章将详细介绍如何在Struts2中进行输入校验,包括两种主要实现方式:使用Action中的`validate()`方法和使用XML文件。 1. 使用Action中的`validate()`方法: 在Struts2中,每个Action类都可以包含一个名为`...

    20对action指定方法进行校验.zip

    本教程“20对action指定方法进行校验.zip”似乎关注的是如何在Struts2中对Action类中的方法进行验证,以确保输入数据的正确性和安全性。 在Struts2中,Action类的方法通常是与用户交互的入口点,每个方法对应一个...

    Struts2 用户输入校验教程

    在Action类中,我们可以覆盖`execute()`方法,对用户输入进行检查。例如,在登录功能中,我们可以创建一个`LoginAction`类,包含`username`和`password`属性,并在`execute()`方法内编写验证逻辑。当验证失败时,...

    Struts2--输入校验

    Struts2内建了一个基于XML的校验框架,允许开发者在Action类的配置文件中定义验证规则。这些规则可以指定字段的必填性、长度限制、数据类型等。例如,你可以通过以下方式定义一个用户名的非空校验规则: ```xml ...

Global site tag (gtag.js) - Google Analytics