`

struts2 输入校验 (三)

阅读更多

 

五、 内建校验器

 

  Struts 2 提供了大量的内建校验器,可以满足大部分应用校验需求。如果应用需要特别复杂的校验需求,开发者可以开发自己的校验器

 

 

1. 注册校验器

  xwork-2.1.2.jar 文件 , com/opensymphony/xwork2/validator/validators 路径下有个 default.xml ,这个是 Struts 2 默认 的校验器注册文件

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
        "-//OpenSymphony Group//XWork Validator Config 1.0//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">

<!-- START SNIPPET: validators-default -->
<validators>
    <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
    <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
    <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
    <validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>
    <validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>
    <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>
    <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>
    <validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>
    <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
    <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
    <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>
    <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>
    <validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>
    <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
    <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>
    <validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>
</validators>
<!--  END SNIPPET: validators-default -->

 

 如果开发者开发了一个自己的校验器,则可以通过添加一个 validators.xml 文件 (放在 WEB-INF/classes 路径下) 来注册校验器。 validators.xml 内容 与 default.xml 相似。

 

注意: 如果 Struts 2 在 WEB-INF/classes 路径下 找到一个 validators.xml,则不会再加载系统默认的 default.xml 。因此,如果开发者提供了自己的校验器注册文件(validators.xml),一定要把 default.xml 文件里的内容全部复制到 validators.xml 中

 

2. 必填校验器

 

 必填校验器名字是 required ,指定字段必须有值(非空)。

 参数:

    fieldName : 指定校验的 Action 属性名,如果采用校验器风格,

                                        则无需指定  该参数

 

 非字段校验器风格:

<validators>
	<validator type="required">
		<!-- 指定需要校验的字段名 -->
		<param name="fieldName">username</param>
		<!-- 指定校验失败的提示信息 -->
		<message>username must not be null</message>
	</validator>
</validators>

 字段校验器风格:

 

<validators>
	<field name="username">
		<field-validator type="required">
			<!-- 指定校验失败的提示信息 -->
			<message>username must not be null</message>
		</field-validator>
	</field>
</validators>
 

 

3. 必填字符串校验器

 

必填字符串校验器名字是: requiredstring ,要求字段值必须是非空且长度大于0,即不能是""。

参数:

    fieldName : 指定校验的 Action 属性名,如果采用校验器风格,

                                        则无需指定  该参数

    trim :是否在校验前截去前后空白,默认 true。

 

非字段校验器风格:

<validators>
	<validator type="requiredstring">
		<!-- 指定需要校验的字段名 -->
		<param name="fieldName">username</param>
                <param name="trim">true</param>

		<!-- 指定校验失败的提示信息 -->
		<message>username must not be null</message>
	</validator>
</validators>
 

 

字段校验器风格:

<validators>
	<field name="username">
		<field-validator type="requiredstring">
                        <param name="trim">true</param>
			<!-- 指定校验失败的提示信息 -->
			<message>username must not be null</message>
		</field-validator>
	</field>
</validators>
 

 

4. 整数校验器

 

整数包括 int long short ,该校验器要求字段的整数值必须在指定范围内。

参数:

 

    fieldName : 指定校验的 Action 属性名,如果采用校验器风格,

                                        则无需指定  该参数

    min :指定该属性最小值,可选,如果没有指定,则不检验最小值

    max :指定该属性的最大值,可选,如果没有指定,则不检验最大值。

 

非字段校验器风格:

<validators>
	<validator type="int">
		<!-- 指定需要校验的字段名 -->
		<param name="fieldName">age</param>
       <param name="min">20</param>
       <param name="max">50</param>
		<!-- 指定校验失败的提示信息 -->
		<message>age needs to bo between ${min} and ${max}
</message>
	</validator>
</validators>
 

 

字段校验器风格:

<validators>
	<field name="age">
		<field-validator type="int">
              <param name="min">20</param>
              <param name="max">50</param>
			<!-- 指定校验失败的提示信息 -->
			<message>age needs to bo between ${min} and ${max}
</message>
		</field-validator>
	</field>
</validators>
 

 

 

5. 日期校验器

日期校验器是 date ,要求字段的日期值必须在指定范围内。

参数:

    fieldName : 指定校验的 Action 属性名,如果采用校验器风格,

                                        则无需指定  该参数

    min :指定该属性最小值,可选,如果没有指定,则不检验最小值

    max :指定该属性的最大值,可选,如果没有指定,则不检验最大值。

 

注意: 如果系统没有指定日期转换器,则默认使用 XWorkBasicConverter 完成日期转换。默认使用 struts.properties 里指定的 Locale,或者系统默认的 Locale 的 Date.SHORT 格式来进行日期转换

 

非字段校验器风格:

<validators>
	<validator type="date">
		<!-- 指定需要校验的字段名 -->
		<param name="fieldName">birth</param>
       <param name="min">1990-01-01</param>
       <param name="max">2010-01-01</param>
		<!-- 指定校验失败的提示信息 -->
		<message>Birthday must to bo between ${min} and ${max}</message>
	</validator>
</validators>

 

 

字段校验器风格:

<validators>
	<field name="birth">
		<field-validator type="date">
              <param name="min">1990-01-01</param>
              <param name="max">2010-01-01</param>
			<!-- 指定校验失败的提示信息 -->
			<message>Birthday must to bo between ${min} and ${max}</message>
		</field-validator>
	</field>
</validators>
 

 

6. 表达式校验器

名字 expression ,它是个非字段校验器,即不可用在字段校验器风格的配置中。 该表达式校验器要求 OGNL 表达式返回 true,当返回 true 时,该校验通过;否则,就算校验没通过

参数:

     expression : 该参数指定一个逻辑表达式,该逻辑表达式基于 ValueStack

                                       进行求职,最后返回一个 boolean 值;当返回 true 时 通过,

                                       否则校验失败

 

非字段校验器风格:

<validators>
	<validator type="expression">
		<!-- 指定校验表达式 -->
		<param name="expression">....</param>
		<!-- 指定校验失败的提示信息 -->
		<message>Failed to meet Ognl Expression ....</message>
	</validator>
</validators>
 

 

7. 字段表达式校验器

 

名字是 fieldexpression , 它要求指定字段满足一个逻辑表达式。

参数:

     fieldName : 指定校验的 Action 属性名,如果采用校验器风格,

                                        则无需指定该参数

     expression : 该参数指定一个逻辑表达式,该逻辑表达式基于 ValueStack

                                       进行求职,最后返回一个 boolean 值;当返回 true 时 通过,

                                       否则校验失败

非字段校验器风格:

<validators>
	<validator type="fieldexpression">
		
		<param name="fieldName">pass</param>
        <param name="expression"><![CDATA[(pass == rpass) ]]></param>
		<!-- 指定校验失败的提示信息 -->
		<message>密码必须和确认密码相等</message>
	</validator>
</validators>
 

 字段校验器风格:

<validators>
	<field name="pass">
		<field-validator type="fieldexpression">
            <param name="expression"><![CDATA[(pass == rpass) ]]></param>
             
			<message>密码必须和确认密码相等</message>
		</field-validator>
	</field>
</validators>
   

8. 邮件地址校验器

 

名字是 email ,它要求被检查字段的字符如果非空,则必须是合法的邮件地址。不过这个校验器其实就是基于正则表达式进行校验的,

系统的邮件地址正则表达式是

 

\\b(^[_A-Za-z0-9-](\\.[_A-Za-z0-9-])*@([A-Za-z0-9-])+((\\.com)|(\\.net)|(\\.org)|(\\.info)|(\\.edu)|(\\.mil)|(\\.gov)|(\\.biz)|(\\.ws)|(\\.us)|(\\.tv)|(\\.cc)|(\\.aero)|(\\.arpa)|(\\.coop)|(\\.int)|(\\.jobs)|(\\.museum)|(\\.name)|(\\.pro)|(\\.travel)|(\\.nato)|(\\..{2,3})|(\\..{2,3}\\..{2,3}))$)\\b

 

注意: 上面的正则表达式可能不能完全覆盖

 

参数:

     fieldName : 指定校验的 Action 属性名,如果采用校验器风格,

                                        则无需指定该参数

 

非字段校验器风格:

<validators>
	<validator type="email">		
		<param name="fieldName">email</param>        
		<!-- 指定校验失败的提示信息 -->
		<message>邮件必须有效地址</message>
	</validator>
</validators>
 

 字段校验器风格:

<validators>
	<field name="email">
		<field-validator type="email">    
             
			<message>邮件必须有效地址</message>
		</field-validator>
	</field>
</validators>
   

9. 网址校验器

 

 名称是 url , 它要求被检查字段的字符如果非空,则必须是合法的 URL 地址。这个也是基于正则表达式进行校验的。

 参数:

     fieldName : 指定校验的 Action 属性名,如果采用校验器风格,

                                        则无需指定该参数

 

 非字段校验器风格:

<validators>
	<validator type="url">		
		<param name="fieldName">url</param>        
		<!-- 指定校验失败的提示信息 -->
		<message>您的主页地址必须是有效的网址</message>
	</validator>
</validators>

  字段校验器风格:

<validators>
	<field name="url">
		<field-validator type="url">  
        <message>您的主页地址必须是有效的网址</message>
		</field-validator>
	</field>
</validators>
 

10. Visitor 校验器

 

Visitor 校验器主要用于校验 Action 里的复合属性 ,例如:一个 Action 里包含了 User 类型的属性。

 

假设有下面的 Action 类:

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;
import java.util.*;
import java.util.regex.*;
import java.text.*;

public class RegistAction extends ActionSupport
{
	//Action里包含了一个User类型的参数
	private User user;
	//user属性的setter和getter方法
	public void setUser(User user)
	{
		this.user = user; 
	}
	public User getUser() 
	{
		return (this.user); 
	}
}
 

这种方式非常类似于前面介绍的驱动模型,即 User 类是一个最普通的 java 类,仅仅提供 4 个属性。

User 类

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;
import java.util.*;
import java.util.regex.*;
import java.text.*;

public class User
{
	private String name;
	private String pass;
	private int age;
	private Date birth;

	public void setName(String name) 
	{
		this.name = name; 
	}

	public void setPass(String pass)
	{
		this.pass = pass; 
	}

	public void setAge(int age)
	{
		this.age = age; 
	}

	public void setBirth(Date birth) 
	{
		this.birth = birth; 
	}

	public String getName()
	{
		return (this.name); 
	}

	public String getPass() 
	{
		return (this.pass); 
	}

	public int getAge() {
		return (this.age); 
	}

	public Date getBirth()
	{
		return (this.birth); 
	}

}
 

   为了 校验上面 RegistAction 的 User 属性 ,显然不能通过其他校验器完成,因为那些普通校验器都只能校验基本数据类型和字符串类型。此时,为了校验该 User 类型属性里的其他属性,则应该使用 Vistior 校验器

 

RegistAction-validation.xml

<?xml version="1.0" encoding="GBK"?>
<!-- 指定校验规则文件的DTD信息 -->
<!DOCTYPE validators PUBLIC 
	"-//OpenSymphony Group//XWork Validator 1.0.3//EN"
	"http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<!-- 校验规则文件的根元素 -->
<validators>
	<!-- 指定校验user字段 -->
	<field name="user">
		<!-- 使用visitor校验器 -->
		<field-validator type="visitor">
			<!-- 指定校验规则文件的context -->
			<param name="context">userContext</param>
			<!-- 指定校验失败后提示信息是否添加下面前缀 -->
			<param name="appendPrefix">true</param>
			<!-- 指定校验失败的提示信息前缀 -->
			<message>用户的:</message>
		</field-validator>
	</field>
</validators>

 上面并未指定 User 类里各字段的校验规则。因此,必须为 User 类指定对应校验规则文件。

 

注意: 如果 appendPrefix = true 则表示校验失败的 message 中会加上 “用户的:” 前缀 ,否则将不会添加前缀

 

默认情况下 ,该校验文件的规则文件名为 User-validation.xml ,因为配置了 Visitor 校验器时指定了 context 为 userContext,则该校验文件的文件名为 User-userContext-validation.xml。

 

User-userContext-validation.xml

<?xml version="1.0" encoding="GBK"?>
<!-- 指定校验配置文件的DTD信息 -->
<!DOCTYPE validators PUBLIC 
	"-//OpenSymphony Group//XWork Validator 1.0.3//EN"
	"http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<!-- 校验文件的根元素 -->
<validators>
	<!-- 校验User属性的name属性 -->
	<field name="name">
		<!-- 指定name属性必须满足必填规则 -->
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<!-- 如果校验失败,输出name.requried对应的国际化信息 -->
			<message key="name.requried"/>
		</field-validator>
		<!-- 指定name属性必须匹配正则表达式 -->
		<field-validator type="regex">
			<param name="expression"><![CDATA[(\w{4,25})]]></param>
			<!-- 如果校验失败,输出name.regex对应的国际化信息 -->
			<message key="name.regex"/>
		</field-validator>
	</field>
	<!-- 校验User属性的pass属性 -->
	<field name="pass">
		<!-- 指定pass属性必须满足必填规则 -->
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<!-- 如果校验失败,输出pass.requried对应的国际化信息 -->
			<message key="pass.requried"/>
		</field-validator>
		<!-- 指定pass属性必须满足匹配指定的正则表达式 -->
		<field-validator type="regex">
			<param name="expression"><![CDATA[(\w{4,25})]]></param>
			<!-- 如果校验失败,输出pass.regex对应的国际化信息 -->
			<message key="pass.regex"/>
		</field-validator>
	</field>
	<!-- 指定User属性的age属性必须在指定范围内-->
	<field name="age">
		<field-validator type="int">
			<param name="min">1</param>
			<param name="max">150</param>
			<!-- 如果校验失败,输出age.range对应的国际化信息 -->
			<message key="age.range"/>
		</field-validator>
	</field>
	<!-- 指定User属性的birth属性必须在指定范围内-->
	<field name="birth">
		<field-validator type="date">
			<!-- 下面指定日期字符串时,必须使用本Locale的日期格式 -->
			<param name="min">1900-01-01</param>
			<param name="max">2050-02-21</param>
			<!-- 如果校验失败,输出birth.range对应的国际化信息 -->
			<message key="birth.range"/>
		</field-validator>
	</field>
</validators>

 

从上面配置文件中可以看出,这个 User-userContext-validation.xml 文件的内容与之前校验 Action 的校验文件完全相同,通过这种方式就可以对 Action 里复合类型的属性进行校验了。

 

因为 Action 里的属性不再是基本数据类型,而是 User 类型的属性,则将 JSP 页面进行简单的修改:

 

regist.jsp

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>请输入您的注册信息</title>
<meta name="website" content="http://www.crazyit.org" />
<s:head/>
</head>

<body>
<h3>请输入您的注册信息</h3>
<!-- 使用Struts 2标签库生成表单 -->
<s:form action="regist">
	<!-- 使用s:textfield标签生成文本输入框 -->
	<s:textfield label="用户名" name="user.name"/>
	<s:password label="密码" name="user.pass"/>
	<s:textfield label="年龄" name="user.age"/>
	<s:textfield label="生日" name="user.birth"/>
	<s:submit/>
</s:form>
</body>
</html>
 

 

 

11. 转换校验器

 

名称: conversion , 它检查被校验字段在类型转换过程中是否出现错误

参数:

     fieldName : 指定校验的 Action 属性名,如果采用校验器风格,

                                        则无需指定该参数

     repopulateField :指定当类型转换失败后,返回 input 页面时,类型转换

                                                 失败的表单域是否保留原来的错误输入。

 

 

非字段校验器风格:

<validators>
	<validator type="conversion">		
		<param name="fieldName">age</param>     
		<param name="repopulateField">false</param>   
		<!-- 指定校验失败的提示信息 -->
		<message>fail</message>
	</validator>
</validators>

 字段校验器风格:

<validators>
	<field name="age">
		<field-validator type="conversion">  
			<param name="repopulateField">true</param>   
			<message>fail</message>
		</field-validator>
	</field>
</validators>
 

 

12. 字符串长度校验器

 

名称: stringlength ,它要求被校验字段的长度必须在指定范围内,否则校验失败。

参数

     fieldName : 指定校验的 Action 属性名,如果采用校验器风格,

                                        则无需指定该参数

 

     maxLength : 指定字段的最大长度。参数可选,不指定时,
                             最大长度不受 限制

     minLength : 指定字段的最小长度。参数可选,不指定时,
                            最小长度不受限制

     trim : 指定校验字段之前是否截断该字段前后空白。该参数可选,默认 true

 

非字段校验器风格:

<validators>
	<validator type="stringlength">		
		<param name="fieldName">user</param>     
		<param name="minLength">4</param>   
		<param name="maxLength">20</param>   		
		<message>fail</message>
	</validator>
</validators>
 

字段校验器风格:

<validators>
	<field name="user">
		<field-validator type="stringlength">  
			<param name="minLength">4</param>   
			<param name="maxLength">20</param>   
			<message>fail</message>
		</field-validator>
	</field>
</validators>
 

 

13. 正则表达式校验器

 

名称: regex , 它检查被校验字段是否匹配一个正则表达式。

参数:

     fieldName : 指定校验的 Action 属性名,如果采用校验器风格,

                                         则无需指定该参数

     expression :该参数是必须的,该参数指定匹配用的正则表达式

       caseSensitive :该参数指明进行正则表达式匹配时,是否区分大小写。

                                              参数可选,默认 true

 

非字段校验器风格:

<validators>
	<validator type="regex">		
		<param name="fieldName">user</param>
		<param name="expression"><![CDATA[(\w{4,20})]]></param>
		<message>你的用户名长度必须在4到20之间,且必须是字母和数字</message>
	</validator>
</validators>
 

字段校验器风格:

<validators>
	<field name="user">
		<field-validator type="regex">  
      <param name="expression"><![CDATA[(\w{4,20})]]></param>
			<message>你的用户名长度必须在4到20之间,且必须是字母和数字</message>
		</field-validator>
	</field>
</validators>

 

 

 

14. 基于 Annotation 校验器

 

基于 Annotation 的输入校验实际上是  Struts 2 “零配件”特性的部分,它允许使用 Annotation 来定义每个字段应该满足的规则Struts 2 在 com.opensymphony.xwork2.validator.annotations 包下提供了大量验证器 Annotation ,这些 Annotation 和前面介绍的验证器大致上一一对应 ,可以自行查看 API 文档

 

配置

    1. 使用 @Validation()Annotation 修饰 Action 类

    2. 使用验证器 Annotation 修饰 Action 里各属性对应的 setter 方法

 

 

下面我们在前面 I18NValidate 应用的基础上进行修改,将该应用的 WEB-INF\src\lee 路径下的校验规则文件删除 ,修改该路径下的 RegistAction.java 文件,通过注释指定各属性应该满足的规则 。修改后的 Action 如下:

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.validator.annotations.*;
import java.util.*;
import java.util.regex.*;
import java.text.*;

//使用@Validation修饰Action类
@Validation()
public class RegistAction extends ActionSupport
{
	private String name;
	private String pass;
	private int age;
	private Date birth;

	//使用Annotation指定必填、正则表达式两个校验规则
    @RequiredStringValidator(type = ValidatorType.FIELD,
		key = "name.requried",message = "")
    @RegexFieldValidator(type = ValidatorType.FIELD, 
		expression = "\\w{4,25}",key = "name.regex",message = "")
	public void setName(String name) 
	{
		this.name = name; 
	}
	public String getName()
	{
		return (this.name); 
	}
	//使用Annotation指定必填、正则表达式两个校验规则
    @RequiredStringValidator(type = ValidatorType.FIELD,
		key = "pass.requried",message = "")
    @RegexFieldValidator(type = ValidatorType.FIELD, 
		expression = "\\w{4,25}",key = "pass.regex",message = "")
	public void setPass(String pass)
	{
		this.pass = pass; 
	}
	public String getPass() 
	{
		return (this.pass); 
	}
	//使用Annotation指定整数范围校验规则
	@IntRangeFieldValidator(message = "", 
		key = "age.range", min = "1", max = "150")
	public void setAge(int age)
	{
		this.age = age; 
	}
	public int getAge() {
		return (this.age); 
	}
	//使用Annotation指定日期范围校验规则
	@DateRangeFieldValidator(message = "", 
		key = "birth.range", min = "1900/01/01", max = "2050/01/21")
	public void setBirth(Date birth) 
	{
		this.birth = birth; 
	}
	public Date getBirth()
	{
		return (this.birth); 
	}
}
 

上面代码使用了验证器 Annotation 修饰了各属性的 setter 方法 。通过在  Action 中使用 Annotation 指定各字段应该满足的校验规则,就可以避免书写 XML 校验规则文件。

但是所有内容都被写入 java 代码中,会给后期维护带来一定困难

 

 

 

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Struts2输入校验总结

    ### Struts2输入校验深度解析 #### 一、手动输入完成校验 在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...

    struts2输入校验

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

    struts2输入校验深入总结

    本文将深入探讨Struts2中的输入校验机制,帮助开发者更好地理解和应用。 一、Struts2输入校验概述 在Struts2中,输入校验主要用于验证用户通过表单提交的数据,防止无效或恶意数据进入系统。Struts2提供了多种方式...

    Struts2的输入校验

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

    Struts 2 输入校验

    Struts 2 输入校验

    Struts2 校验器

    在Struts2中,校验器(Validator)是处理用户输入验证的核心组件,确保提交到服务器的数据符合预设的业务规则。这篇博客文章可能是关于如何使用Struts2的内置校验机制以及自定义校验规则的探讨。 Struts2的校验框架...

    struts2的输入校验

    struts2的输入校验有两种方式: 一.重写validate()方式 二.采用配置文件的方式 先我们就以一个简单的登录的例子来讲解这个吧. 重点讲解下,第二个采用配置文件的方式: 1.添加一个xml的校验文件,保存在...

    Struts2 输入校验

    本篇文章将深入探讨Struts2中的输入校验机制。 一、Struts2 输入校验概述 Struts2提供了多种进行输入校验的方式,包括Action级别校验、Validator框架校验、拦截器校验以及使用JSR303/JSR349 Bean Validation标准。...

    struts2输入校验总结

    Struts2是一个流行的Java web开发框架,它提供了一套强大的输入校验机制,确保用户提交的数据符合业务逻辑的要求。在本文中,我们将深入探讨Struts2的输入校验功能,包括手动输入校验和基于验证框架的输入校验。 ##...

    Struts2数据校验与国际化

    在Struts2中,数据校验主要分为三类: 1. `validate()` 方法校验:这是最基本的验证方式,通常在Action类中定义。当用户提交表单时,Struts2会自动调用该方法,对所有字段进行验证。开发者可以在该方法中编写自定义...

    使用struts2进行输入校验

    在Struts2中,输入校验是一个至关重要的部分,它确保了用户从客户端提交的数据符合预设的业务规则,从而避免了无效或不合法数据进入系统。本篇文章将详细介绍如何在Struts2中进行输入校验,包括两种主要实现方式:...

    struts2中的输入校验

    在Struts2中,输入校验是确保用户提交的数据符合预设规范的重要环节,可以防止非法数据进入系统,保护数据的完整性和安全性。本文将详细探讨Struts2中的输入校验机制。 首先,Struts2提供了两种主要的校验方式:...

    Struts2输入校验

    要求使用Struts2的内建校验器校验“书名”、“作者”、“出版日期”、“价格”和“库存数量”字段;要求手动编写代码校验“书号”的有效性;要求手动编写代码校验“出版社”字段中是否包含了“出版社”三个字。

    [原]Struts2输入校验

    在Struts2中,输入校验是确保数据安全性和应用稳定性的重要环节。它帮助开发者防止非法或无效的数据进入系统,从而减少潜在的错误和安全漏洞。 **Struts2输入校验机制** 1. **内置验证框架**: Struts2提供了内置的...

    struts的输入校验

    一、Struts输入校验概述 输入校验在Web应用中扮演着数据过滤和保护的角色,它可以避免脏数据进入数据库,提高系统的稳定性和安全性。Struts框架提供了多种方式进行输入校验,包括ActionForm校验、Validator框架以及...

Global site tag (gtag.js) - Google Analytics