struts2中使用ajax验证邮箱(用户名)是否被注册


action类:

package com.grace.myblog.view.action;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.springframework.stereotype.Controller;

import com.grace.myblog.domain.User;

@Controller
public class EmailCheckAction{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public String execute() throws Exception{
		try{
			String responseText="";
		    HttpServletRequest request=ServletActionContext.getRequest();
		    String email=request.getParameter("email"); 
		    System.out.println("---"+email);
	        User user = registerService.findByEmail(email);//通过email查询数据库,判断邮箱是否已经被注册
	        if(user==null){  
	            responseText="2";  
	        }else{
	            responseText="1";
	        }
	        HttpServletResponse response=ServletActionContext.getResponse();    
	        response.setContentType("text/html;charset=utf-8"); 
	        PrintWriter out=response.getWriter();  
	        out.print(responseText);  
	        out.flush();  
	        out.close();  
		}catch(Exception e){
			e.printStackTrace();
		}
		return null;
	}
}

js中的代码

function checkUserMail(){
	
	/* email检查ajax */
	var email = document.getElementById("email").value;
	var xhr = ajaxFunction();
	xhr.onreadystatechange = function(){
		if(xhr.readyState==4){
			if(xhr.status==200){
				var data = xhr.responseText;		//获取文本
				if(data=="1"){
					document.getElementById("emailcheck").innerHTML = "<font color='red'>该邮箱已经被注册</font>";
					return false;
				}else{
					document.getElementById("emailcheck").innerHTML = "恭喜,该邮箱还未被注册";
					return true;
				}
			}
		}
	}
	xhr.open("get","emailCheck.action?email="+email,true);
	xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	xhr.send();

}
function ajaxFunction(){
   var xmlHttp;
   try{ // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e){
	   try{// Internet Explorer
	         xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	      }
	    catch (e){
	      try{
	         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	      }
	      catch (e){}
	      }
    }
	return xmlHttp;
 }


sturts.xml中的配置

<!-- email检查ajax  -->
<action name="emailCheck" class="emailCheckAction" >/*使用注解方式,因此class默认为类名首字母小写*/
</action>

jsp页面只需要在想显示提示信息的地方加上下面这行代码即可

<div  id="emailcheck" ></div>



你可能感兴趣的:(java,js,Ajax,struts2)