標籤:java struts2 ajax js
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;@Controllerpublic 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>