struts2校验器使用简明

首先,给出包结构截图:



 这里UserAction使用模型驱动:



 

我们需要对UserAction类中的user_regist方法使用校验规则,校验器命名为:ClassName-[ActionName]-validation.xml      

ActionName对应着ClassName中的执行方法,若不填写则表示校验器对ClassName下的所有执行方法都生效。

我们的校验器为:UserAction-user_regist-validation.xml

user_regist 方法如下:

	/**
	 * 用户注册的方法
	 * @return
	 */
	public String regist(){
		//判断验证码程序
		//从session中获得验证码
		String checkcode1 = (String) ServletActionContext.getRequest().getSession().getAttribute("checkcode");
		if(!checkcode1.equalsIgnoreCase(checkcode)){
			this.addActionError("验证码输入错误!");
			return "checkCodeFail";
		}
		userService.save(user);
		this.addActionMessage("注册成功!请去邮箱激活!");
		return "msg";
	}

UserAction-user_regist-validation.xml 如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
  		"-//Apache Struts//XWork Validator 1.0.3//EN"
  		"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
	<!-- 校验用户名 -->
	<field name="username">
		<field-validator type="requiredstring">
			<message>用户名不能为空!</message>
		</field-validator>
	</field>
	<!-- 校验密码 -->
	<field name="password">
		<field-validator type="requiredstring">
			<message>密码不能为空!</message>
		</field-validator>
	</field>
	<!-- 校验邮箱 -->
	<field name="email">
		<field-validator type="email">
			<message>邮箱格式不正确!</message>
		</field-validator>
	</field>
	<!-- 校验姓名 -->
	<field name="name">
		<field-validator type="requiredstring">
			<message>姓名不能为空!</message>
		</field-validator>
	</field>
	<!-- 校验地址 -->
	<field name="addr">
		<field-validator type="requiredstring">
			<message>地址不能为空!</message>
		</field-validator>
	</field>
</validators>

接下来,在struts.xml中配置校验器的逻辑视图,result name 为input:

		<!-- 配置用户模块的Action -->
		<action name="user_*" class="userAction" method="{1}">
			<result name="registPage">/WEB-INF/jsp/regist.jsp</result>
			<!-- result:input 是user_regist校验规则返回的 -->
			<result name="input">/WEB-INF/jsp/regist.jsp</result>
			<result name="loginPage">/WEB-INF/jsp/login.jsp</result>
			<result name="login">/WEB-INF/jsp/login.jsp</result>
			<result name="loginSuccess" type="redirectAction">index</result>
			<result name="quit" type="redirectAction">index</result>
			<result name="checkCodeFail">/WEB-INF/jsp/regist.jsp</result>
		</action>

最后,在jsp页面中显示校验信息:

<tr>
<th><span class="requiredField">*</span>E-mail:</th>
<td><input type="text" id="email" name="email" class="text" maxlength="200">
<span><s:fielderror fieldName="email" /></span>
</td>
</tr>

效果如下:



 

猜你喜欢

转载自wyj365372704.iteye.com/blog/2217733
今日推荐