struts2:字段校验和非字段校验代码示例:
此段代码中分别对字符串、日期、整型、email进行数据校验;
Validation01Action.java
[/size]
package org.validation.action;
import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
public class Validation01Action extends ActionSupport {
private String name;
private String email;
private int age;
private Date date;
public String execute()throws Exception{
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
1.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP '1.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<s:fielderror></s:fielderror>
<s:form action="validator01">
<s:textfield name="name" label="姓名"></s:textfield>
<s:textfield name="email" label="邮箱"></s:textfield>
<s:textfield name="age" label="年龄"></s:textfield>
<s:textfield name="date" label="日期"></s:textfield>
<s:submit value="提交"></s:submit>
</s:form>
</body>
</html>
如果是以字段型校验器配置,则参考以下:
Validation01Action-validation.xml
(1)<field name="">为一个属性,name为Action属性名称;
(2)<field-validator type="">为配置一个校验器,type为校验器的类型;
(3)<param>为配置参数,比如最小值、最大值;
(4)<message>为错误信息,如果需要对错误提示信息进行国际化,则可以在全局国际化资源文件中配置,在校验规则文件中编写如下形式:<message key="key"/>,key为国际化资源文件的key即可;
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>姓名不能为空</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,10})]]></param>
<message>姓名要在4-10位之间</message>
</field-validator>
</field>
<field name="age">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>年龄不能为空</message>
</field-validator>
<field-validator type="int">
<param name="min">0</param>
<param name="max">200</param>
<message>年龄范围在0-200之间</message>
</field-validator>
</field>
<field name="email">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>邮箱不能为空</message>
</field-validator>
<field-validator type="email">
<message>邮箱格式不正确</message>
</field-validator>
</field>
<field name="date">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>日期不能为空</message>
</field-validator>
<field-validator type="date">
<param name="min">2010-01-01</param>
<param name="max">2010-12-31</param>
<message>日期在2010-01-01到2010-12-31之间</message>
</field-validator>
</field>
</validators>
而如果采用非字段校验器,则
(1)<validator type="">表示一个校验器,type属性表示校验器的类型;
(2)<param name="fieldName"></param> 此元素是必要的,指定Action属性的名称;
(3)<message>表示错误信息;
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
<validator type="requiredstring" short-circuit="true">
<param name="fieldName">name</param>
<param name="trim">true</param>
<message key="aa"></message>
</validator>
<validator type="requiredstring" short-circuit="true">
<param name="fieldName">age</param>
<param name="trim">true</param>
<message>年龄不能为空</message>
</validator>
<validator type="requiredstring" short-circuit="true">
<param name="fieldName">email</param>
<param name="trim">true</param>
<message>邮箱不能为空</message>
</validator>
<validator type="requiredstring" short-circuit="true">
<param name="fieldName">date</param>
<param name="trim">true</param>
<message>日期不能为空</message>
</validator>
<validator type="regex">
<param name="fieldName">name</param>
<param name="expression"><![CDATA[(\w{4,10})]]></param>
<message>姓名要在4-10位之间</message>
</validator>
<validator type="int">
<param name="fieldName">age</param>
<param name="min">0</param>
<param name="max">200</param>
<message>年龄范围在0-200之间</message>
</validator>
<validator type="email">
<param name="fieldName">email</param>
<message>邮箱格式不正确</message>
</validator>
<validator type="date">
<param name="fieldName">date</param>
<param name="min">2010-01-01</param>
<param name="max">2010-12-31</param>
<message>日期在2010-01-01到2010-12-31之间</message>
</validator>
</validators>
分享到:
相关推荐
Struts2是一个强大的MVC框架,它提供了全面的数据验证机制,包括字段校验和非字段校验。Struts2的验证可以通过以下方式实现: - **Action类的validate方法**:在Action类中重写`validate()`方法,对所有字段进行...
4. **校验器配置风格**:分为字段校验器和非字段校验器。字段校验器直接作用于特定字段,而非字段校验器可以跨多个字段工作。 - 字段校验器配置示例: ```xml 被校验的字段"> 校验器名"> <!-- 校验规则 --> ...
Struts2支持两种服务器端校验方式:代码校验和配置校验。 3. **代码校验**: 代码校验是通过编写Java代码来实现的。具体步骤如下: - **步骤一:封装数据**:将用户输入的值封装到Action类的属性中,如在`...
Struts2的数据校验分为两个主要部分:客户端校验和服务器端校验。客户端校验通常使用JavaScript或者HTML5的表单验证,可以在用户提交数据前即时反馈错误,提高用户体验。而服务器端校验则是在服务端进行,确保即使绕...
在本文中,我们将深入探讨Struts2的输入校验功能,包括手动输入校验和基于验证框架的输入校验。 ### 一、手动输入校验 1. **普通处理方式**: - 在Action类中,你可以重写`validate()`方法,该方法会在业务逻辑...
首先,Struts2的输入校验机制允许开发者在不编写额外代码的情况下,对用户的输入进行验证。它内置了多种校验器,能够处理大部分常见的校验需求,如必填、长度限制、数据类型检查等。此外,对于更复杂的校验规则,...
校验规则分为字段校验配置和非字段校验配置两种风格。字段校验配置直接关联到Action中的属性,而非字段校验配置则需要显式指定被校验的字段名。还可以通过添加`short-circuit="true"`属性实现短路校验,即只显示第一...
首先,Struts2提供了两种主要的校验方式:代码校验和校验框架。这两种方法都可以有效地检查用户输入,并根据验证结果向用户返回错误信息。 1. **代码校验**: - **重写validate方法**:开发者可以重写Action类的`...
在“Struts2_1100_SimpleDataValiation”这个压缩包中,可能包含了相关的代码示例、教程文档,或者是一个简单的Struts2项目,用于演示如何在实际应用中实现数据校验。你可以通过解压文件,学习和理解Struts2数据校验...
Struts2提供了多种数据校验方式,包括基于注解的校验、基于XML配置的校验和自定义校验。 1. **基于注解的校验**: Struts2集成Spring的Validation框架,允许开发者在Action类的属性上使用JSR303/JSR349(Bean ...
- 除了在Action类中使用注解,也可以在`Validation.xml`文件中定义全局和字段级别的校验规则。 - 这种方式对于多个Action共享相同的校验规则非常有用。 5. **结果集和错误处理** - 如果数据校验失败,Struts2会...
在这个名为"struts2-login校验.rar"的压缩包中,我们很显然会看到一个关于Struts2登录验证的实现,涉及到admin和user两个不同角色的登录页面。 首先,我们需要了解Struts2的核心概念,如Action和Result。Action是...
本示例将详细介绍如何在Struts2中创建并使用自定义校验器。 在Struts2中,数据验证分为两种类型:客户端验证和服务器端验证。客户端验证通常通过JavaScript在用户浏览器中进行,而服务器端验证则在服务器上执行,...
Struts2提供了多种进行输入校验的方式,包括Action级别校验、Validator框架校验、拦截器校验以及使用JSR303/JSR349 Bean Validation标准。这些方法可以单独使用,也可以结合使用,以满足不同项目的需求。 1. Action...
Struts2作为一款流行的Java Web开发框架,提供了一套强大的校验框架,使得开发者能够方便地对用户输入数据进行验证,确保数据的准确性和安全性。本文将深入探讨Struts2校验框架的应用,包括其核心概念、配置方式、...
本资料“Struts2_1100_SimpleDataValiation.rar”提供了关于Struts2简单数据校验的源码示例。 首先,Struts2的数据校验主要依赖于两个核心组件:Validation拦截器和Validator框架。Validation拦截器在Action执行前...