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

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

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

    posts - 78, comments - 34, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    今天早上老佟將昨天的練習進行了講解。今天的主要內容是對AJAX的匯總練習,做了兩個練習都是比較常使用的應用。

     

    一、              下拉框的級聯,比如,選擇下拉框一中的內容(城市名稱),在下拉框二中顯示在這個城市中的部門。在下拉框二中選擇部門名稱,在下拉框三中顯示部門的人員。在下拉框中選擇人員名稱,在表格中顯示人員具體信息。這就是級聯,數據存儲在數據庫中。使用AJAX技術只更新當前頁面部分內容,無須刷新整個頁面。

    二、              用戶注冊功能,提示用戶名是否合法等。同樣也是使用AJAX技術。

     

    這兩個練習大家都比較常見,WEB已經這么流行了!Ok,接下來讓我們看看具體流程。我把這兩個圖畫一下。(只為AJAXStruts1的配合練習)

     

    練習一:下拉框的級聯

    clip_image001

     

             以上沒有使用service層,那樣做會使程序更優雅。但對于這個小練習沒有必要,甚至編寫多個DAO也沒必要,老佟只編寫了一個DAO。在這里我們麻煩一下自己吧!

     

             這里與頁面的交互數據是JSONJSON用在表單上十分方便。

     

    列出一部分程序的代碼,在頁面加載時。需要獲取城市列表,并將城市添加到下拉列表框中(對應的項目value是城市的Id)。:

            

    var url="${pageContext.request.contextPath}/cascading.do?method=getAllCities";

        var args = {"time":new Date()};

        $("#city > option:not(:first)").remove();  

        // 嚴重注意JSON數據的格式,出一點差錯都不可以,比如少了一個“:”。

        $.getJSON(url, args, function(data){

           if(data != null){

                //將所有的城市顯示到下拉列表框中

               for(var i=0; i < data.cities.length;i++){

                  var newOption = $("<option value='"+data.cities[i].id+"'>"+data.cities[i].name+"</option>");

                  newOption.appendTo($("#city"));

               }

           }

        });

     

             getJSON請求的處理的DispatchAction的方法:

    public ActionForward getAllCities(ActionMapping mapping, ActionForm form,

               HttpServletRequest request, HttpServletResponse response) throws Exception {

           //獲取所有城市

           CityDao cd = new CityDao();

           List list = cd.getAllCities();

           //將所有的城市包裝為一個JSON

           StringBuffer sb = new StringBuffer("{cities:[");

           for(int i=0; list!=null && i<list.size(); i++){

               JSONObject jsonObj = new JSONObject(list.get(i));

               sb.append(jsonObj.toString()).append(",");

           }

           //JSON數據添加結尾

           String result = null;

           if(list!=null && list.size()>0)

               result = sb.substring(0,sb.length()-1) + "]}";

           else

               result = sb.toString() + "]}";

           //向頁面發送數據

           response.setCharacterEncoding("UTF-8");

           response.setContentType("text/javascript");

           response.getWriter().print(result);

           return null;

        }

            

             數據庫操作部分,在這就不列舉了。因為之前的日志中已經有了!

     

    練習二:校驗用戶注冊

     

     

    clip_image002

             與練習一相同,這里也沒有編寫service層。

     

             我只將AJAX部分的javascript粘貼出來:

    <script type="text/javascript" src="${pc}/scripts/jquery-1.3.1.js"></script>

    <script type="text/javascript" src="${pc}/scripts/jquery.blockUI.js"></script>

    <script type="text/javascript">

        // 頁面被加載完成后

        $(function(){

           // 用戶名合法性校驗函數

           function doRegCheckout(username){

               var reg1 = /^\s*|\s*$/gi;

               username = username.replace(reg1,"");

               // 長度全法性校驗

               if(username.length < 6 ){

                  $(":text").val(username);

                  $("#message").html("<font color='red'>用戶名長度至少為6個字符!</font>");

                  return false;

               }

               // 內容合法性校驗

               var reg2 = /^[a-zA-Z]\w+$/;

               if(!reg2.test(username)){

                  $("#message").html("<font color='red'>用戶名必須以字母開始,可以包含數字和下劃線!</font>");

                  return false;

               }

               // 提交

               var url = "${pc}/reg.do";

               var args = {username:username, time:new Date()};

               // Action發出用戶是否存在的校驗

               $.post(url,args,function(data){

                  $("#message").html(data);

               });

               return false;

           }

           // 當用戶名文本框內容被改變時,進行用戶名合法性校驗!

           $(":text").change(function(){

               doRegCheckout($(this).val());

           });

           // 當用戶名文本框內容被改變時,進行用戶名合法性校驗!

           $(":submit").click(function(){

               return doRegCheckout($(":text").val());

           });

        });

    </script>

     

             正則表達式很重要哦!程序員必備的七種武器之一!

     

             練習結尾,加油!


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲伊人久久大香线蕉在观| 亚洲欧洲精品成人久久奇米网| 亚洲AV无码精品色午夜在线观看| 亚洲日韩在线观看免费视频| 中文字幕亚洲第一| 久久久久久国产a免费观看不卡| 亚洲av无码天堂一区二区三区| 精品免费AV一区二区三区| 又粗又黄又猛又爽大片免费| 狼人大香伊蕉国产WWW亚洲| 免费二级毛片免费完整视频| 一级午夜免费视频| 国产亚洲成AV人片在线观黄桃| 毛片无码免费无码播放| 亚洲人成网站在线观看播放青青| 日韩毛片免费无码无毒视频观看| 亚洲国产精品无码久久九九大片 | 在线免费一区二区| 国产成人综合久久精品亚洲| 免费萌白酱国产一区二区| h片在线观看免费| 亚洲午夜精品久久久久久人妖| 免费成人激情视频| 精品亚洲视频在线| 亚洲国产第一站精品蜜芽| 在线看片v免费观看视频777| 亚洲国产精品无码久久九九大片| 亚洲人成网站观看在线播放| 国产在线精品免费aaa片| 国产.亚洲.欧洲在线| www.亚洲色图| 免费人成视频在线观看网站| 亚洲精品第一国产综合亚AV| 亚洲国产日韩在线观频| 99久久精品免费视频| 亚洲av成人一区二区三区在线播放| 国产亚洲精品AA片在线观看不加载| 亚欧在线精品免费观看一区| 男男黄GAY片免费网站WWW| 亚洲人成电影在在线观看网色| 最近最好的中文字幕2019免费|