<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    IT人生
    專注于java相關技術.
    posts - 53,comments - 87,trackbacks - 0

    最近有一個項目要上,決定struts2+hibernate+spring開發,可現在AJAX如火如荼,而且功能上也大大方便了程序員開發和WEB頁面,如果不用,太對不起Jesse James Garrett(AJAX的創始人)。可我以前一直是做后臺的開發,對前臺的JS知識是鳳毛麟角,直接嘗試用AJAX,時間、精力浪費不起。后來,在與一同事聊天時,提到了prototype.js,說學會了這個,AJAX將成囊中之物,姑且對他的話持保留態度。但在看了這個JS的源碼后,真是的柳暗花明又一村。

    prototype.js是什么?

    讓我來告訴你,prototype.js是由Sam Stephenson寫的一個javascript類庫。這個構思奇妙,而且兼容標準的類庫,能幫助你輕松建立有高度互動的web2.0特性的富客戶端頁面。

    如果你最近嘗試使用它,你大概了解到文檔并不是作者的一個強項。和在我以前使用這個類庫的不少開發者一樣,一開始,我不得不一頭扎進閱讀prototype.js的源代碼和實驗它的功能中。因此,如果你是偷懶者,可以在GOOGLE里搜索關于它的東西。

    開始創建項目

    項目介紹:項目中使用了struts2,spring IOC,主要完成了一個無刷新檢測用戶名是否已經在數據庫中注冊的簡單功能。

    本文重點介紹prototype.js,因此關于struts2的東西,將不重點講解。

    首先看一下,struts2的配置文件:  

    1. <action name="register" method="register" class="userAction">  
    2.    <result>/register_success.jspresult>  
    3.    <result name="input">/register.jspresult>  
    4. action>  
    5. <action name="check" method="check" class="userAction">            
    6. action>  

    可以看到這里有兩個Action,“register”是用戶提交注冊的,“check”是為用戶名檢測預留的。兩個Action的方法都是在userAction中,而這個類交給了spring來管理,看以下代碼: 

    1. <bean id="userAction" class="com.caitong.pingou.action.UserAction"         
    2.         autowire="byName">  
    3. bean>  

    然后,我們再看一下userAction的東西吧。

    java 代碼
    1. public class UserAction extends ActionSupport {   
    2.   
    3.  private User user;//User類是一個很簡單的JAVA BEAN,主要包括用戶名,密碼,年齡,性別等屬性   
    4.  public User getUser() {   
    5.   return user;   
    6.  }   
    7.   
    8.  public void setUser(User user) {   
    9.   this.user = user;   
    10.  }   
    11.   
    12.  public String execute(){   
    13.   return null;   
    14.  }   
    15.     
    16.  /**  
    17.   * 客戶端檢測用戶名是否已經注冊過  
    18.   *  
    19.   */  
    20.  public void check(){   
    21.   HttpServletResponse response = ServletActionContext.getResponse(); //取response對象   
    22.   HttpServletRequest request = ServletActionContext.getRequest();//取request對象   
    23. //服務器響應   
    24.   response.setContentType("text/xml;charset=utf-8");   
    25.   response.setHeader("Cache-Control","no-cache");   
    26.   
    27.   String name = request.getParameter("user.username");   
    28.   
    29.   String msgStr="";   
    30.   boolean flag = name.equals("abc");//從數據庫中檢測該用戶名是否已經存在     
    31.   if(flag){      
    32.       msgStr ="對不起,此用戶名已經存在,請更換用戶名";   
    33.   }      
    34.   else{   
    35.    msgStr ="用戶未被注冊,可以使用!";      
    36.   }   
    37.      
    38.   try{//response寫信息   
    39.    response.getWriter().print(msgStr);   
    40.    response.getWriter().close();   
    41.   }catch(IOException e){   
    42.    e.printStackTrace();   
    43.   }    
    44.  }   
    45.   
    46. /**  
    47.   * 提交注冊  
    48.   * @return  
    49.   */  
    50.  public String register(){   
    51.   if(!abc".equals(user.getUsername()){//如果數據庫中沒有用戶   
    52.       save(User);//偽代碼,保存用戶   
    53.   else  
    54.       return INPUT;   
    55.    reutrn SUCCESS;   
    56. }   

    基本上在類里已經注釋過了,自己的工程是通過服務層來判斷用戶是否已經注冊過,其中服務層又是調用DAO層,所有的CLASS都交給SPRING來管理,其中標識偽代碼的部份,有興趣的人,可以自己試著寫一下,從數據庫取數據,然后判斷。

    最后一起看一下WEB層的register.jsp,prototype將粉墨登場

     

    js 代碼
    1. <%@ page contentType="text/html; charset=utf-8" %>   
    2. <%@ taglib  prefix="s" uri="/struts-tags"%>   
    3.   
    4. <html>   
    5. <head>   
    6. <title>注冊</title>   
    7. <script language="JavaScript" type="text/javascript"    
    8.         src="js/prototype.js"></script>   
    9. <script language="JavaScript">     
    10.     function showResponse(originalRequest){               
    11.         Element.hide($('load'));//用設定它的 style.display 為 'none'來隱藏每個傳入的元素。   
    12.         alert(originalRequest.responseText); //彈出服務器端的msgStr字符串   
    13.         Form.reset($('register'));//重置表單。和調用表單對象的 reset() 方法一樣。   
    14.         Field.focus($('user.username')); //移動焦點到給定的表單項目。   
    15.                  
    16.     }   
    17.     function showDiv(){        
    18.         Element.show($('load'));//用設定它的 style.display 為 ''來顯示每個傳入的元素。   
    19.     }   
    20.     //身份驗證    
    21.     function check(){          
    22.         var pars=Form.Element.serialize($('user.username'));   
    23.         var url='check.action'; //返回元素的 名稱=值 對, 如 'elementName=elementValue'           
    24.            
    25.         if($F('user.username')==""){   
    26.             alert("請輸入姓名!");   
    27.             return false;   
    28.         }   
    29.         else{   
    30.             var myAjax = new Ajax.Request(   
    31.                     url,{method:'get',   
    32.                     parameters:pars,   
    33.                     onLoading:showDiv,   
    34.                     onComplete:showResponse,   
    35.                     onFailure:reportError});//構造函數,見講解   
    36.        }   
    37.     }   
    38.     function reportError(){   
    39.         alert('嚴重故障,請重試!');   
    40.     }   
    41.       
    42.         
    43. </script>   
    44.   
    45. <s:head/>   
    46. </head>   
    47.     

     

    1. <body>  
    2.         <center>  
    3.         <br/><br/><br/><br/><br/><br/><br/><br/>  
    4.         <p><div id="load" style="display:none">正在驗證用戶名,請稍后……</div></p>  
    5.                
    6.         <s:form action="regiseter" method="post">  
    7.             <s:textfield name="user.username" label="UserName"></s:textfield>  
    8.             <input type="button" value="檢測!" onClick="check()"/>  
    9.             <s:textfield name="user.password" label="PassWord"></s:textfield>  
    10.             <s:textfield name="user.age" label="Age"></s:textfield>  
    11.             <s:textfield name="user.sex" label="Sex"></s:textfield>  
    12.             <s:submit></s:submit>  
    13.         </s:form>  
    14.         </center>  
    15.        
    16.   </body>  
    17. </html>  


    減肥瘦身品總匯     值得信賴*脈脈美妝*正品現貨謝絕講價     〓深港商盟〓名品歐衣坊(美國休閑品牌AF系列)     QQ三國游戲幣及道具專賣店     小臉紅紅的瘦身旗艦店
    posted on 2009-03-07 21:21 龍華城 閱讀(619) 評論(0)  編輯  收藏 所屬分類: Struts2
    主站蜘蛛池模板: 成人性生交大片免费看无遮挡| 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 亚洲成a∨人片在无码2023| 日本亚洲视频在线| 亚洲国产精品无码专区影院| 亚洲综合熟女久久久30p| 亚洲熟妇av一区二区三区| 亚洲无av在线中文字幕| 国产亚洲日韩一区二区三区| 亚洲人成无码网站| 亚洲AV成人一区二区三区AV| 亚洲天天在线日亚洲洲精| 亚洲视频在线观看免费视频| 亚洲国产精品专区| 亚洲中文字幕一区精品自拍| 人人狠狠综合久久亚洲| 激情吃奶吻胸免费视频xxxx| 一级特黄aaa大片免费看| 丝袜捆绑调教视频免费区| 男人进去女人爽免费视频国产| 性无码免费一区二区三区在线| **一级毛片免费完整视| 丁香花在线观看免费观看| 麻豆国产人免费人成免费视频| 免费看一级做a爰片久久| 国产成人高清亚洲| 亚洲综合日韩中文字幕v在线| 亚洲国产综合人成综合网站00| 亚洲另类自拍丝袜第五页| 黄色片网站在线免费观看| 三年在线观看免费观看完整版中文| 国产日韩一区二区三免费高清| 99热在线免费观看| 成年女人免费视频播放77777| 四虎AV永久在线精品免费观看| 国产亚洲成归v人片在线观看| 中文字幕的电影免费网站| 香港a毛片免费观看| 拍拍拍又黄又爽无挡视频免费| 亚洲精品无码99在线观看| 亚洲国产精品国自产拍电影|