假如这个世界上只剩下你一个人,当你正坐在屋子里的时候,这时突然响起了敲门声...
Struts2教程5:使用Validation框架验证数据
上一篇 / 下一篇 2008-04-21 23:02:04 / 个人分类:struts2
查看( 167 ) /
评论( 0 )
本文为原创,如需转载,请注明作者和出处,谢谢!ITPUB个人空间Vj4rs]"|C zz
lTf6vS%N"M0上一篇:Struts2教程4:使用validate方法验证数据
4\.~K4g+q5Z o0
)I8}@!B5LT{0 在《Struts2教程4:使用validate方法验证数据》中曾讲到使用validate方法来验证客户端提交的数据,但如果使用validate方法就会将验证代码和正常的逻辑代码混在一起,但这样做并不利于代码维护,而且也很难将过些代码用于其他程序的验证。在Struts2中为我们提供了一个Validation框架,这个框架和Struts1.x提供的Validation框架类似,也是通过XML文件进行配置。ITPUB个人空间 fTlj,qC|
ITPUB个人空间,_4wvq3?-cp$^,i
一、服务端验证
$Pj#^#kx"_v[0
irI$L4]0}0下面将给出一个例子来演示如何使用Struts2的validation框架来进行服务端验证。我们可以按着如下几步来编写这个程序:ITPUB个人空间+eCm~lOG!e
6H}rY WWktaA0【第1步】建立Action类(NewValidateAction.java)
8PxjLS8X s,Vo0ITPUB个人空间j.sq5sl8i m
package action;ITPUB个人空间5Pp;V/YW4Y
M^7bpg0import com.opensymphony.xwork2.ActionSupport;ITPUB个人空间nj3C"D };h6ZG8gtL
ITPUB个人空间.|yNR*Kr2z
public class NewValidateAction extends ActionSupportITPUB个人空间;yS^'Q,M8F*R
{
OeEZ]f,e0 private String msg; // 必须输入
&O+?B3i`M$C!W5e0 private int age; // 在13和20之间
!N T&g8d;l#Kv0 public String getMsg()
U bQb*W X0 {ITPUB个人空间$^[\o/\
return msg;
"@ ~p GW(Mv/VfU0 }
/Lc/y[C!G1P0 public void setMsg(String msg)ITPUB个人空间n9b*k1yCe'X
{
nB M9O:rH%|0 this.msg = msg;
$x,{AYPg#y"l$x0 }ITPUB个人空间6w2q8o@(Yi!L
public int getAge()ITPUB个人空间:w7T{Y4_+`'q9SJ7A:BR
{
%Va4Q1x`!V0 return age;
6FBQ` H4[0 }ITPUB个人空间y%O,el)y X-KO
public void setAge(int age)ITPUB个人空间inR7ijO
{
l)nzr7kxb0 this.age = age;
UIC e R j}D0 }
v&P'fX"q7C0}
)Q!E c6n0LX0ITPUB个人空间PNy(q.iz8\0I8Y
下面我们来验证msg和age属性。ITPUB个人空间8^*I5U} `P
【第2步】配置Action类,struts.xml的代码如下:ITPUB个人空间#T;xS nXD]4v4v
~l5sO`0<?xml version="1.0" encoding="UTF-8" ?>ITPUB个人空间,QS,X-V:NC e k
<!DOCTYPE struts PUBLICITPUB个人空间OFg-Kp3KS
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"ITPUB个人空间f(JS{q&^U&h5L+COI
"http://struts.apache.org/dtds/struts-2.0.dtd">
p2bh+OO&{Fa x0<struts>ITPUB个人空间hz}(A&D'can
<package name="demo" extends="struts-default" namespace="/test">
wOhs:VH0 <action name="new_validate" class="action.NewValidateAction">ITPUB个人空间G+b/F(pk
<result name="input">/validate_form.jsp</result>ITPUB个人空间g@rk,G6X!} Wu/@
<result name="success">/validate_form.jsp</result>
G4r(E:jQ0 </action>ITPUB个人空间%cC6OZE1e
</package>
I| e%b&qb9_0</struts>ITPUB个人空间mPd yw
s6yQ"}B,l l2^0【第3步】编写验证规则配置文件ITPUB个人空间8WkCk1`#M,k9t vM
ITPUB个人空间U(si _i[-E%^ j@
这是一个基于XML的配置文件,和struts1.x中的validator框架的验证规则配置文件类似。但一般放到和要验证的.class文件在同一目录下,而且配置文件名要使用如下两个规则中的一个来命名:
lTf6vS%N"M0上一篇:Struts2教程4:使用validate方法验证数据
4\.~K4g+q5Z o0
)I8}@!B5LT{0 在《Struts2教程4:使用validate方法验证数据》中曾讲到使用validate方法来验证客户端提交的数据,但如果使用validate方法就会将验证代码和正常的逻辑代码混在一起,但这样做并不利于代码维护,而且也很难将过些代码用于其他程序的验证。在Struts2中为我们提供了一个Validation框架,这个框架和Struts1.x提供的Validation框架类似,也是通过XML文件进行配置。ITPUB个人空间 fTlj,qC|
ITPUB个人空间,_4wvq3?-cp$^,i
一、服务端验证
$Pj#^#kx"_v[0
irI$L4]0}0下面将给出一个例子来演示如何使用Struts2的validation框架来进行服务端验证。我们可以按着如下几步来编写这个程序:ITPUB个人空间+eCm~lOG!e
6H}rY WWktaA0【第1步】建立Action类(NewValidateAction.java)
8PxjLS8X s,Vo0ITPUB个人空间j.sq5sl8i m
package action;ITPUB个人空间5Pp;V/YW4Y
M^7bpg0import com.opensymphony.xwork2.ActionSupport;ITPUB个人空间nj3C"D };h6ZG8gtL
ITPUB个人空间.|yNR*Kr2z
public class NewValidateAction extends ActionSupportITPUB个人空间;yS^'Q,M8F*R
{
OeEZ]f,e0 private String msg; // 必须输入
&O+?B3i`M$C!W5e0 private int age; // 在13和20之间
!N T&g8d;l#Kv0 public String getMsg()
U bQb*W X0 {ITPUB个人空间$^[\o/\
return msg;
"@ ~p GW(Mv/VfU0 }
/Lc/y[C!G1P0 public void setMsg(String msg)ITPUB个人空间n9b*k1yCe'X
{
nB M9O:rH%|0 this.msg = msg;
$x,{AYPg#y"l$x0 }ITPUB个人空间6w2q8o@(Yi!L
public int getAge()ITPUB个人空间:w7T{Y4_+`'q9SJ7A:BR
{
%Va4Q1x`!V0 return age;
6FBQ` H4[0 }ITPUB个人空间y%O,el)y X-KO
public void setAge(int age)ITPUB个人空间inR7ijO
{
l)nzr7kxb0 this.age = age;
UIC e R j}D0 }
v&P'fX"q7C0}
)Q!E c6n0LX0ITPUB个人空间PNy(q.iz8\0I8Y
下面我们来验证msg和age属性。ITPUB个人空间8^*I5U} `P
【第2步】配置Action类,struts.xml的代码如下:ITPUB个人空间#T;xS nXD]4v4v
~l5sO`0<?xml version="1.0" encoding="UTF-8" ?>ITPUB个人空间,QS,X-V:NC e k
<!DOCTYPE struts PUBLICITPUB个人空间OFg-Kp3KS
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"ITPUB个人空间f(JS{q&^U&h5L+COI
"http://struts.apache.org/dtds/struts-2.0.dtd">
p2bh+OO&{Fa x0<struts>ITPUB个人空间hz}(A&D'can
<package name="demo" extends="struts-default" namespace="/test">
wOhs:VH0 <action name="new_validate" class="action.NewValidateAction">ITPUB个人空间G+b/F(pk
<result name="input">/validate_form.jsp</result>ITPUB个人空间g@rk,G6X!} Wu/@
<result name="success">/validate_form.jsp</result>
G4r(E:jQ0 </action>ITPUB个人空间%cC6OZE1e
</package>
I| e%b&qb9_0</struts>ITPUB个人空间mPd yw
s6yQ"}B,l l2^0【第3步】编写验证规则配置文件ITPUB个人空间8WkCk1`#M,k9t vM
ITPUB个人空间U(si _i[-E%^ j@
这是一个基于XML的配置文件,和struts1.x中的validator框架的验证规则配置文件类似。但一般放到和要验证的.class文件在同一目录下,而且配置文件名要使用如下两个规则中的一个来命名: