Struts2数据校验

Struts2数据校验  


     回忆一下struts1的校验(写在formBean里面,并且凡是Action使用了该FromBean,都会调用其FormBean里面的验证方法即validate方法),校验数据是属于业务逻辑,写在业务层应该更合适,可以说struts2的验证更为具体,可以验证到某个具体方法:

验证方法一、

所使用的Action继承ActionSupport并重写validate方法,这种方式会验证所Action里面的所有方法,code:

@Override

public void validate() {

if(info == null)

addFieldError("userName", "未输入用户名");//保存错误

}

第二种、
    更为详细,可验证到具体的方法,该方法几乎与上一种如出一辙,也是继承ActionSupport类,但是不重写validate方法,而是validateXxx方法,Xxx为所需要验证方法的方法名,有点像getXxx/setXxx方法。Code:

public void validateLogin(){

String userName = info.getUserName();

if(userName == null || info.getUserName().trim().equals(""))

addFieldError("userName", "未输入用户名");

String password = info.getPassword();

if(password == null || info.getPassword().trim().equals(""))

addFieldError("password", "未输入密码");

}

  验证login(登陆)方法
第三种、

框架验证,比较灵活,与上面两种思想上也存在着相似的地方:每个Action类有一个校验文件,命名 Action的简单类名-validation.xml,且与Action类同目录,当校验文件的取名为Action的简单类名-validation.xml时,会对 action中的所有处理方法实施输入验证。如果你只需要对action中的某个方法实施校验,那么,校验文件的取名应为:Action简单类名-ActionName-validation.xml,其中ActionName为struts.xml中action的名称即下面的user_*(注意,验证文件名不是UserAction-user_*-validate.xml,这里的’*’是方法名,该方法使用了通配符)。例如:在实际应用中,常用以下配置:

<action name="user_*" class="com.study.action.validate.UserAction" method="{1}">

<result name="input">/jsp/validate/login.jsp</result>

<result>/jsp/validate/welcome.jsp</result>

</action>

UserAction中有以下两个需要处理的方法:regist与login

public class UserAction extends ActionSupport

implements ModelDriven<UserInfo>{

private UserInfo info = new UserInfo();

public String login(){

return SUCCESS;

}

public String regist(){

return SUCCESS;

}

public String delete(){

return SUCCESS;

}

@Override

public UserInfo getModel(){

return info;

}

}

要对regist方法实施验证,校验文件的取名为:UserAction-user_regist-validation.xml要对login()方法实施验证,校验文件的取名为: UserAction-user_login-validation.xml,当然你可以将校验文件命名为UserAction-validation.xml来对UserAction中的所有方法都进行验证。校验文件如:UserAction-user_regist-validation.xml

<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"

"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>

<field name="userName">

<field-validator type="requiredstring">

<param name="trim">true</param>

<message>必须输入用户名</message>

</field-validator>

<field-validator type="regex">

<param name="expression"><![CDATA[(\w{4,25})]]></param>

<message>您输入的用户名只能是字母和数组,且长度必须在4到25之间 </message>

</field-validator>

</field>

</validators>

上面的type即黄色标出的在xwork[版本号].jar包里面com\opensymphony\xwork\validator\validators\default.xml中定义的,可选择用解压工具打开查看定义了那些type注意上面提到的一、二 2种方法都是写在Action里面,不是写在Bean里面,与struts1有所不同。在页面获取保存的错误信息可通过通过<s:fielderror>标签来获取(需要引人入struts2的tag:<%@ taglib prefix="s" uri="/struts-tags"%>),另外保存的错误可以是国际化配置文件的值;即:支持国际化;本章节暂不介绍,稍后将在后面的文档:struts2的国际化中讲解。

【写在后面】

笔者提示,方法不在于多,在于合适、熟练。配置文件不必牢记背诵,讲解至现在,配置量比较多大了,只需要知其意就行了,在开发中大多数都是copy再改改就达到目的了,总之谁背谁傻瓜,当然有些关键字还是要记住的,不然在网络上查找东西都不知道用什么关键字,岂不愁煞人。在网络上自觉学习是一种良好的自学能力的表现
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值