Struts2+Spring2+Hibernate3架構中JQuery ajax的實現

來源:互聯網
上載者:User
最近在做一個項目,算是邊寫邊學一些東西吧。把struts2+spring2+hibernate3的架構搭好跑通之後,遇到了要做使用者名稱驗證,想到要用Ajax來做。以前都是自己手寫的,這次就想試試看用組件來做,網上看了看現在主流的ajax組件主要有ext、dwr、jquery。試了下用dwr,感覺蠻簡單的,但是在詢問了同事之後,說是dwr只是ajax組件,而且據說曾經遇到過bug,推薦我用jquery。網上看了一下jquery的東西,雖說要顛覆一些自己平時js的編碼習慣,但是這個東西確實是不錯,研究了一個晚上總算把jquery ajax在MVC架構中給配好了,不容易啊,呵呵,以下為相關代碼(唯寫出關鍵區段,需要完整source的可以E-mail給我) 

register.jsp 用於註冊的頁面 由這個頁面發起ajax 也是最關鍵的頁面 
Java代碼   $(document).ready(function(){       //當userid控制項失去焦點時       $("#stUserId").blur(function(){           var stUserId=$("#stUserId");           //啟動jquery的ajax           $.ajax({               //以get方式ajax               type: "get",               //ajax的地址 這裡我用的是一個action 配置請看下面的struts配置               url: "ajaxUserId",               //發送給ajax的值 以key:value方式儲存 最終為拼接到url的後面               data: {stUserId:stUserId.val()},               //這裡有一個關鍵的地方 是否使用緩衝中資料進行提交,預設為true               //如果是true的話 如果你之前提交過stUserId=test,那麼以後當                 //你的stUserId=test的時候就不會觸發ajax了               cache: false,               //當調用成功時 data是返回的值 textStatus是狀態(成功或失敗)               success: function(data, textStatus){                   alert(data);               }           });       });   });  

發生ajax之後會通過struts尋找action 
struts.xml 
Java代碼   //action的name就是上張頁面中ajax的url   //去尋找spring中的id為registAction的bean 並調用它的java類中ajaxUserId()方法   <action name="ajaxUserId" class="registAction" method="ajaxUserId">       //將傳回值發送到以下頁面       <result>/sysUser/ajaxUser.jsp</result>   </action>  

spring.xml 
Java代碼   //等於是去找SysUserBasicImpl類中的ajaxUserId()方法   <bean id="registAction" class="com.myweb.action.SysUserBasicImpl" scope="prototype">       <property name="sysUserBasicDAO">           <ref local="SysUserBasicDAO"/>       </property>   </bean>  

SysUserBasicImpl.java 
Java代碼   //用於得到ajax傳過來的stUserId參數   private String stUserId;   //傳回值是一個boolean值 顯示是否存在該userid   private boolean isExist;      //讓ajaxUser.jsp頁面可以得到傳回值isExist   public boolean getIsExist(){       return isExist;   }      //讓spring將stUserId值注射進來   public void setStUserId(String stUserId) {       this.stUserId = stUserId;   }      //ajax調用的方法   public String ajaxUserId(){       List list=sysUserBasicDAO.getHibernateTemplate().find(" from SysUserBasic where ST_USER_ID=?",stUserId);       isExist = (list.size()>0);       return SUCCESS;   }  

ajaxUser.jsp 用於得到傳回值 
Java代碼   //使用struts標籤   <%@ taglib uri="/struts-tags" prefix="s" %>   //將傳回值輸出出來 讓ajax發出頁面可以得到這個頁面的值   <s:property value="isExist"/>  
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.