struts2用户验证的validate方法

来源:互联网 发布:java 循环查询数据库 编辑:程序博客网 时间:2024/05/17 09:13

问题?struts2用户验证的validate方法

变成人员有时候会遇到注册页面或者登录页面的信息验证。当然我们可以使用jquery框架或者js来做。这里讲的是struts2用户验证的validate方法。

原理:struts2环境及相关的包xwork2包

一、用户输入数据的验证
1、手工编程验证,针对该动作类中的所有的动作方法
步骤:
a、动作类继承ActionSupport
b、覆盖调用public void validate()方法
c、在validate方法中,编写不符合要求的代码判断,并调用父类的addFieldError(String fieldName,String errorMessage)
如果fieldError(存放错误信息的Map)有任何的元素,就是验证不通过,动作方法不会执行。
Struts2框架会返回到name=input的result
d、在name=input指定的页面上使用struts2的标签显示错误信息。<s:fielderror/>

二、案例

1.struts.xml文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><!-- constant表示常量设置,设置配置文件自动更新,开发中很重要 --><constant name="struts.action.extension" value="action,,do"></constant><constant name="struts.devMode" value="true"></constant><!-- 数据验证 validate --><package name="validate" namespace="/validate" extends="struts-default"><action name="user_*" class="com.itcast.web.addUser.AddUserAction" method="{1}"><result name="success">/uploadSuccess.jsp</result><result name="input">/{1}User.jsp</result></action></package></struts>

继承了ActionSupport的动作类AddUserAction

package com.itcast.web.addUser;import java.io.Serializable;import com.opensymphony.xwork2.ActionSupport;public class AddUserAction extends ActionSupport implements Serializable {private String username;//用户名不能为空,还要去掉首尾空格private String password;//3~6位的数字public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}//动作方法的实现addpublic String add(){System.out.println("执行了user的add方法");return SUCCESS;}public String update(){System.out.println("执行了user的update方法");return SUCCESS;}/* (non-Javadoc) * @see com.opensymphony.xwork2.ActionSupport#validate() * 这个ActionSupport覆盖的方法 */@Overridepublic void validate() {//数据验证方法,首先验证,*再确认走那些方法(手工验证所有的方法,必须走这个)if(username==null||"".equals(username.trim())){addFieldError("username", "用户名不能为空");}//正则表达式,jdk查patternif(password==null||!password.matches("\\d{3,6}")){addFieldError("password", "密码不能为空且必须是3~6位的数字");}}}

用户添加信息页面addUser.jsp(这里的add跟配置文件中的input是通过通配符走的add方法想对应的):

<%@ taglib uri="/struts-tags" prefix="s" %><!--导入s标签库-->  <body>  <!-- 验证信息数据回显 -->   <s:fielderror fieldName="username"></s:fielderror>  <s:fielderror fieldName="password"></s:fielderror>    <form action="${pageContext.request.contextPath}/validate/user_add.action" method="post">    用户名:<input type="text" name="username"/><br/>    密码:<input type="text" name="password"/><br/>    <input type="submit" value="保存"/>    </form>  </body>
用户修改信息页面updateUser.jsp

 <%@ taglib uri="/struts-tags" prefix="s" %>  <body>    <!-- 修改信息数据回显 -->   <s:fielderror fieldName="username"></s:fielderror>  <s:fielderror fieldName="password"></s:fielderror>    <form action="${pageContext.request.contextPath}/validate/user_update.action" method="post">    用户名:<input type="text" name="username" value="sds"/><br/>    密码:<input type="text" name="password" value="sdff"/><br/>    <input type="submit" value="保存"/>    </form>  </body>

验证:运行服务器,访问添加信息页面和修改信息页面,看看是否可以进行验证和数据回显。

           



                     



0 0
原创粉丝点击