struts2学习(14)——输入验证(1)

手动创建一个对所有的action方法都可以验证的validate

1、创建一个action继承ActionSupport

2、重写ActionSupport的validate方法,产生错误信息使用addFieldError方法添加错误信息。

3、创建input result,一旦产生错误,validate会返回到一个input的result

4、使用<s:fieldError />标签显示出错信息。

下面来看代码:

<form action="${pageContext.request.contextPath}/regist_validate" method="post">
		用户名:<input type="text" name="userName" /><s:fielderror fieldName="userName"/><br/>
		密码:<input type="password" name="userPass" /><s:fielderror fieldName="userPass"/><br/>
		电话号码:<input type="text" name="phoneNum" /><s:fielderror fieldName="phoneNum"/><br/>
		<input type="submit" value="注册" />
	</form>

这是一个注册form,其中<s:fielderror />标签可以用来显示错误信息

public class RegistValidate extends ActionSupport{
	private String userName;
	private String userPass;
	private String phoneNum;
	
	@Override
	//继承ActionSupport,其中的validate可以用来进行输入验证
	public void validate() {
		if(this.userName == null || "".equals(this.userName.trim())){
			addFieldError("userName", "用户名不能为空");
		}
		if(this.userPass == null || "".equals(this.userPass.trim())){
			addFieldError("userPass", "密码不能为空");
		}
		if(this.phoneNum == null || "".equals(this.phoneNum.trim())){
			addFieldError("phoneNum", "电话号码不能为空");
		}else{
			if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.phoneNum).matches()){
				addFieldError("phoneNum", "手机号格式不正确");
			}
		}
	}

这是action,继承了ActionSupport类,重写了validate方法,在方法中使用addFieldRrror方法,添加错误信息,产生错误会返回到input result视图资源

package name="validate" extends="struts-default">
   	<action name="*_validate" class="cn.itcast.validation.RegistValidate" method="{1}">
   		<result name="success">/WEB-INF/validate/message.jsp</result>
   		<result name="input">/regist.jsp</result>
   	</action>
   </package>

这是struts.xml文件的action的注册信息,定义了两个result,一个是成功验证后的返回界面,一个是出现错误后的界面。


在这个validate中,我们的validate是会验证所有的action方法的。无论我们使用哪个方法,validate都会对他进行验证,那么如何可以指定验证action中的指定方法呢?

我们要提供validate***的方法, ***是action的方法名,注意这里的*** 第一个字母要大写。

像上面的validate,如果我们只想让他校验regist方法,我们可以将validate的方法名改为:validateRegist()就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值