`
sinwee
  • 浏览: 4791 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

struts2校验数据

阅读更多
struts2校验数据
在使用struts2校验数据的时候,如果校验失败会重新返回到数据的提交页面,这是通过<result name="input"></result>来实现的。如果校验成功就执行相对应的业务处理的方法。具体示例代码如下:
DataValidateAction.java
package com.sinwee.validate;

import java.util.Map;

import org.apache.struts2.interceptor.RequestAware;

import com.opensymphony.xwork2.ActionSupport;

/**
 * 测试目的:struts2校验数据 
 * 测试时间:2013年6月22日22:36:37
 * @author Administrator
 * 
 */
public class DataValidateAction extends ActionSupport implements RequestAware {

	/**
	 * 
	 */
	private static final long serialVersionUID = -2228354281751790751L;

	private String username;
	private String password;
	private Map<String, Object> request;
	
	
	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;
	}
	
	@Override
	public void setRequest(Map<String, Object> request) {
		this.request = request;
	}
	
	/**
	 * 模拟新增用户的方法,
	 * @return
	 */
	public String addUser() {
		
		request.put("username", username);
		request.put("password", password);
		
		return "addSuccessful";
	}
	
	/**
	 * 该方法只会对action中的addUser()方法进行校验
	 */
	public void validateAddUser() {
		if (this.username == null || this.username.trim().equals("")) {
			this.addFieldError("username", "用户名不能为空!");
		} else if (this.username.toCharArray().length < 5) {
			this.addFieldError("username", "用户名必须大于5位字符!");
		}
		
		if (this.password == null || this.password.trim().equals("")) {
			this.addFieldError("password", "密码不能为空!");
		} else if (!(this.password.matches("\\d+"))) {
			this.addFieldError("password", "密码必须全部是数字");
		}
	}
	
}

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 name="struts.delMode" value="true"/>
    <package name="validateData" namespace="" extends="struts-default">
        <action name="validateData_*" class="com.sinwee.validate.DataValidateAction" method="{1}">
        	<result name="addSuccessful">
        		/addSuccessful.jsp
        	</result>	
        	
        	<result name="input">  <!-- 校验失败返回到增加用户页面 -->
        		/addUser.jsp
        	</result>
        </action>
    </package>
   

    <!-- Add packages here -->

</struts>


addUser.jsp:提交数据的页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>新增用户</title>
  </head>
  
  <body>
  	  <s:fielderror></s:fielderror><br/>
	  <form action="${pageContext.request.contextPath }/validateData_addUser" method="post">
		用户名:<input type="text" name="username" />
		<br/>
		密码:<input type="password" name="password" />
		<br/>
		<input type="submit" value="增加用户(测试校验数据)">
	  </form>
  </body>
</html>


addUserSuccessful.jsp:执行相对应的业务方法之后的返回的页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  
  <body>
    	新增用户成功!<br/>
    	用户名:${requestScope.username }<br/>
    	密码:${requestScope.password }
  </body>
</html>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics