Struts2_validation 框架验证数据
来源:互联网 发布:java 日期减一个月 编辑:程序博客网 时间:2024/05/16 14:07
validation 框架验证编码步骤
一、服务器验证
1. 建立Action类
package action;
import com.opensymphony.xwork2.ActionSupport;
public class NewValidateAction extends ActionSupport
{
private String msg; //必须输入
private int age; //在13和20之间
public String getMsg()
{
return msg;
}
public void setMsg(Stringmsg)
{
this.msg=msg;
}
public int getAge()
{
return age;
}
public void setAge(intage)
{
this.age=age;
}
}
验证msg和age属性
2. 配置Action类,struts.xml
<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="demo" extends="struts-default" namespace="/test">
<action name="new_validate"class="action.NewValidateAction">
<result name="input">/validate_form.jsp</result>
<result name="success">/validate_form.jsp</result>
</action>
</package>
</struts>
3. 编写验证规则配置文件
这是一个基于XML的配置文件,和struts1中的validator框架的验证规则配置文件是类似的
但是一般放在和要验证的。class文件在同一目录下,而且配置文件名要使用如下规则中的一个来命名
<ActionClassName>-validation.xml
<ActionClassName>-<ActionAliasName>-validation.xml
其中<ActionAliasName>就是struts.xml中<ation>的name属性值。在本例中我们使用第一种命名规则,所以文件名是NewValidateAction-validation.xml。文件的内容如下:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEvalidatorsPUBLIC"-//OpenSymphonyGroup//XWorkValidator1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="msg">
<field-validator type="requiredstring">
<message>请输入信息</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">13</param>
<param name="max">20</param>
<message>
必须在13至20之间
</message>
</field-validator>
</field>
</validators>
这个文件使用了两个规则:requiredstring(必须输入)和int(确定整型范围)。
4. 编写数据录入jsp页面
在web根目录下建立一个validate_form.jsp文件代码如下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%>
<%@taglibprefix="s"uri="/struts-tags"%>
<linkrel="stylesheet"type="text/css"href="<s:urlvalue="/styles/styles.css"/>">
<html>
<head>
<title>验证数据</title>
</head>
<body>
<s:form action="new_validate"namespace="/test">
<s:text fieldname="msg"label="姓名" />
<s:text fieldname="age"label="年龄"/>
<s:submit/>
</s:form>
</body>
</html>
大家要注意一下,如果在struts.xml的<package>标签中指定namespace属性,需要在<s:form>中也将namespace和action分开写,如上面代码所示。
不能写成<s:form action = "/test/new_validate"></s:form>
二、客户端验证
在Struts2中实现客户端验证是非常简单的,之需要在
<s:form>中加入一个validate属性,值为true。如<s:form validate="true" ... > ... </form>即可
三、验证嵌套属性
有一类特殊的属性,即这个属性的类型是另外一个JavaBean,如有一个User类,代码如下:
package data;
public class User
{
private String name;
private int age;
public String getName()
{
return name;
}
public void setName(Stringname)
{
this.name=name;
}
public int getAge()
{
return age;
}
public void setAge(intage)
{
this.age=age;
}
}
在NewValidateAction类中加一个user属性,代码如下:
import com.opensymphony.xwork2.ActionSupport;
import data.User;
public class NewValidateAction extends ActionSupport
{
private String msg;
private int age;
private User user;
public String getMsg()
{
return msg;
}
public void setMsg(String msg)
{
this.msg=msg;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age=age;
}
public User getUser()
{
return user;
}
public void setUser(User user)
{
this.user=user;
}
}
如果要验证NewValidateAction中的user属性,可以使用visitor验证器。操作过程如下:
首先在NewValidateAction-validation.xml中加入一个<field>标签,代码如下:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEvalidatorsPUBLIC"-//OpenSymphonyGroup//XWorkValidator1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
……
<field name="user">
<field-validator type="visitor">
<param name="context">abc</param>
<param name="appendPrefix">true</param>
<message>User:</message>
</field-validator>
</field>
</validators>
其中context参数将作为验证User类属性的文件名的一部分,如user属性返回一个User对象,那么用于验证User对象属性的文件名问User-abc-validation.xml。这个文件要和User.class文件在同一个目录中。
appendPrefix表示是否在字段里加user,如果为true,Struts2就会使用user.name在Form提交的数据中查找要验证的数据。这个属性的默认值是true。如果出错,Struts2会将<message>标签中的信息加到User-abc-validation.xml文件中的相应错误信息前面
User-abc-validation.xml文件的内容如下:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEvalidatorsPUBLIC"-//OpenSymphonyGroup//XWorkValidator1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<message>请输入name</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">5</param>
<param name="max">20</param>
<message>
必须在5至20之间
</message>
</field-validator>
</field>
</validators>
编辑录入jsp
<s:formvalidate="true"action="new_validate"namespace="/test">
<s:textfieldname="msg"label="姓名" />
<s:textfieldname="age"label="年龄"/>
<s:textfieldname="user.name"label="姓名1" />
<s:textfieldname="user.age"label="年龄1"/>
<s:submit/>
</s:form>
最后两个<s:textfield>的name属性是user.name和user.age,正好是加了前缀的。
注意:使用visitor无法以客户端验证的方式来验证user属性,但NewValidateAction中其他的属性可以使用客户端测试。
- Struts2_validation 框架验证数据
- 通用数据验证框架
- Validation框架验证数据
- Struts使用验证框架验证数据校验
- cakephp框架之数据验证
- .net winform 数据验证框架
- Hibernate中的数据验证框架
- Asp.net中的数据验证框架
- Struts2:使用Validation框架验证数据
- struts2 使用Validation框架验证数据
- Struts 的数据校验和验证框架
- Struts 的数据校验和验证框架
- Struts2 使用Validation框架验证数据
- java框架之springmvc06(数据验证)
- Spring mvc 数据验证框架注解
- Struts2的数据验证框架validation framework
- Struts2-利用数据验证框架进行表单验证
- Struts 2 数据验证及验证框架的应用
- JAVA的环境配置
- Installing Orbited on Windows ¶
- About Shell
- Struts2_处理一表单多提交
- Struts2_validate验证数据
- Struts2_validation 框架验证数据
- 【转帖】1588介绍
- Regex.Split注意事项
- mysql 表数据备份和恢复
- DB2 转Oracle
- http-equiv是什么意思
- sqlplus中利用spool生成带日期的文件名
- Unix 正则表达式
- C和C++混合编程相关问题解决方法