Struts2 validate验证指定方法的三种方式。

下面讲下使用Struts2框架的validate进行验证时,怎样对指定方法进行验证的三种方式。


验证时覆写父类的validate方法应该就不用我多说了。

1.直接在validate验证方法后加需要被验证的方法名字(也可以加Do再加方法名)。如下,看遍就懂了。

//非空验证
	public void validateToLoginView() {
		if(username==null||username.length()<=0){
			this.addFieldError("username", "请输入用户名");
		}
		if(password==null||username.length()<=0){
			this.addFieldError("password", "请输入密码");
		}
	}

或者

//非空验证
	public void validateDoToLoginView() {
		if(username==null||username.length()<=0){
			this.addFieldError("username", "请输入用户名");
		}
		if(password==null||username.length()<=0){
			this.addFieldError("password", "请输入密码");
		}
	}



2.使用注解方式,@SkipValidation这个注解表示不对该方法进行验证。如果希望哪些方法不被验证可以使用此方式。例如下面

	//去登录页面
	@SkipValidation
	public String toLoginView() throws Exception {
		return "loginview";
	}
	
	//登录
	public String login() throws Exception{
		if(!"username".equals(username)||!"123456".equals(password)){
			return "loginview";
		}
		return "success";
	}
	
	//非空验证
	public void validate() {
		if(username==null||username.length()<=0){
			this.addFieldError("username", "请输入用户名");
		}
		if(password==null||username.length()<=0){
			this.addFieldError("password", "请输入密码");
		}
	}
 

toLoginView这个方法表示要去登录页面,所以这个方法肯定不能进行非空验证,故在此方法上面加个注解@SkipValidation,这样就不对此方法进行验证了,只对其他方法进行验证,也就是login方法了。


3.在struts的配置文件中覆写下默认拦截器中的验证拦截器。如下

<action name="LoginAction_*" class="org.web.action.LoginAction" method="{1}">
			<result name="loginview">/login.jsp</result>
			<result name="success">/success.jsp</result>
			<interceptor-ref name="defaultStack">
				<param name="validation.excludeMethods">input,back,cancel,browse,toLoginView</param>
			</interceptor-ref>
		</action>

首先,struts的validate验证其实就是validation拦截器来进行的,我们可以在这里指定使用defaultStack拦截器,并且在里面指定一个参数,名字是validation.excludeMethods,前面说的是验证拦截器的名称 validation (我们可以在struts2核心包下的struts-default.xml里看到),后面就是指定的参数名称,这个参数就是指定不被验证的有哪些方法,我们在后面加上toLoginView就可以了,使用逗号隔开,这样就不会被验证了。


建议大家使用第一种就行了,简单又省事。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值