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

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

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

    posts - 8,  comments - 174,  trackbacks - 0

    程序更新:1、添加了對頁面顯示數(shù)據(jù)量的控制。
                   2、添加了刪除數(shù)據(jù)后,動態(tài)刷新表數(shù)據(jù)功能。

    源碼下載:  test.rar

    更新文件:1、index.jsp 
                   2、UserAction.java

    注意事項:1、由于加包后文件太大,源碼中沒有struts2.0 相關(guān)jar包。
                   2、該程序沒有用到數(shù)據(jù)庫,加入jar包后直接在web容器上運(yùn)行即可。
                   3、如果需要完整的源碼,請留言你的郵箱,或者聯(lián)系QQ:303225497。

    更新代碼:

               index.jsp

               
    <%@ page language="java" pageEncoding="UTF-8"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        
    <head>
            
    <title>test javascript</title>
        
    </head>
        
    <script defer="defer">
        
            
    //XMLHTTP對象
            var xmlHttp;    
            
    //刪除數(shù)據(jù)所在的行id   
            var deleteRowId;   
            
            
    /**
             * 發(fā)送請求、調(diào)用回調(diào)方法
             *
             * @param url: 請求的URL    
             *        afterMothod:請求返回時所調(diào)用的方法名稱(回調(diào)方法)
             *
             
    */

            
    function showHint(url,afterMothod) {
                
    try{
                    xmlHttp 
    = GetXmlHttpObject(afterMothod);
                    xmlHttp.open(
    "GET",url,false);
                    xmlHttp.send(
    null);
                }
    catch(e){
                    alert(e);
                }

            }

            
            
    /**
             * 根據(jù)瀏覽器創(chuàng)建XmlHttp對象
             *
             * @param handler:請求返回時所調(diào)用的方法名稱(回調(diào)方法)    
             *       
             
    */

            
    function GetXmlHttpObject(handler) {
                
    var objXmlHttp = null;
                
    if (navigator.userAgent.indexOf("Opera">= 0{
                    alert(
    "This example doesn't work in Opera");
                    
    return;
                }

                
    if (navigator.userAgent.indexOf("MSIE">= 0{
                    
    var strName = "Msxml2.XMLHTTP";
                    
    if (navigator.appVersion.indexOf("MSIE 5.5">= 0{
                        strName 
    = "Microsoft.XMLHTTP";
                    }

                    
    try {
                        objXmlHttp 
    = new ActiveXObject(strName);
                        objXmlHttp.onreadystatechange 
    = handler;
                        
    return objXmlHttp;
                    }

                    
    catch (e) {
                        alert(
    "Error. Scripting for ActiveX might be disabled");
                        
    return;
                    }

                }

                
    if (navigator.userAgent.indexOf("Mozilla">= 0{
                    objXmlHttp 
    = new XMLHttpRequest();
                    objXmlHttp.onload 
    = handler;
                    objXmlHttp.onerror 
    = handler;
                    
    return objXmlHttp;
                }

            }

            
            
    /**
             * 請求返回是調(diào)用的回調(diào)方法
             * 服務(wù)器段返回 user 信息以xml形式發(fā)送到客戶斷  
             * 解析 xml 數(shù)據(jù),把數(shù)據(jù)展現(xiàn)給用戶
             *    
             
    */

            
    function flush() {
                
    try{
                    
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"{
                        
                        
    //得到返回過來的XML對象,進(jìn)行數(shù)據(jù)處理
                        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
                        xmlDoc.async
    =false;
                        xmlDoc.loadXML(xmlHttp.responseText)  
                    
                        
    //返回錯誤代碼,適合用于測試。
                        //var error = xmlDoc.parseError.errorCode;
                        //alert(error?xmlDoc.parseError.reason:"XML格式正確");
                        
                        
    //解析XML數(shù)據(jù),將數(shù)據(jù)刷新到userTable中
                        var users=xmlDoc.getElementsByTagName("user");
                        
    //插入數(shù)據(jù)前,先清空數(shù)據(jù)
                        clearTable(userTable);
                        
    for(var i=0;i<users.length;i++){
                            
    //插入行
                            var userRow=userTable.insertRow();
                            
    //得到行標(biāo)示
                            var rowId=userRow.rowIndex;      
                            
                            
    //取到一個user對象
                            var user=users[i];                
                            
                            
    //插入序號列
                            var userNum=userRow.insertCell();
                            userNum.innerHTML 
    = "<font size=4 color=5adf83><b>"+(i+1)+"</b></font>"
                            
                            
    //插入userid列
                            var userId=userRow.insertCell(); 
                            
    //顯示userid  
                            userId.innerHTML = user.getAttribute("userId");
                            
                            
    var userName=userRow.insertCell();
                            userName.innerHTML
    =user.getAttribute("userName");
                            
                            
    var userTel=userRow.insertCell();
                            userTel.innerHTML
    =user.getAttribute("userTel");
                            
                            
    var userOp=userRow.insertCell();
                            
    //生成刪除user的url                    
                            var deleteUserURl="user!delete.action?userNumber="+getPageUserNumber()+"&user.userId="+user.getAttribute("userId");
                            userOp.innerHTML
    ="<a href=javascript:showHint('"+deleteUserURl+"',drop);>刪除</a>";
                        }

                    }

                }
    catch(e){
                    alert(e.description);
                }

            }

            
            
    /**
             * 請求返回是調(diào)用的回調(diào)方法
             * 刪除 user對象 服務(wù)器段返回刪除后的操作信息和 user 列表數(shù)據(jù)  
             * 客戶端將信息和數(shù)據(jù)展現(xiàn)給用戶
             *    
             
    */

            
    function drop(){
                
                
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"{
                    
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
                    xmlDoc.async
    =false;
                    xmlDoc.loadXML(xmlHttp.responseText);
                    
    var msg=xmlDoc.getElementsByTagName("msg")[0];
                    
                    
    if(msg.getAttribute("isSuccess")=="false"){
                        alert(msg.getAttribute(
    "msgString"));
                    }
    else{
                        alert(msg.getAttribute(
    "msgString"));
                        flush();
    //刪除成功后,刷新數(shù)據(jù)。
                    }

                }

            }

            
            
    /**
             * 清空數(shù)據(jù)表的數(shù)據(jù) 
             *
             * @param opTable:所要清空的表對象    
             *       
             
    */

            
    function clearTable(opTable){
                
                
    var size=opTable.rows.length;
                
    for(var i=2;i<size;i++){
                    opTable.deleteRow(
    2);
                }

            }

            
            
    /**
             * 得到一頁顯示數(shù)據(jù)的個數(shù)    
             *       
             
    */

            
    function getPageUserNumber(){
                
    return size.value;
            }

            
            
    /**
             * 動態(tài)的根據(jù)用戶選擇的顯示數(shù)進(jìn)行動態(tài)返回刷新操作的URL
             *       
             
    */

            
    function getFlushUserURl(){
                
    return "user!list.action"+"?userNumber="+getPageUserNumber();
            }

        
    </script>
        
    <body>
            
    <center>
                
    <h3> 
                    用戶列表 
                
    </h3>
                
    <br>
                
    <table id="userTable" title="用戶列表" width="60%">
                    
    <tbody align="center">
                        
    <tr bgcolor="#54821f">
                            
    <th width="5%">
                                序號
                            
    </th>
                            
    <th width="15%">
                                用戶ID
                            
    </th>
                            
    <th width="15%">
                                姓名
                            
    </th>
                            
    <th width="15%">
                                電話
                            
    </th>
                            
    <th width="5%">
                                操作
                            
    </th>
                        
    <tr>
                    
    </tbody>
                
    </table>
                
    <br>
                
    <br>
                
    <br>
                
    <button onclick="showHint(getFlushUserURl(),flush);">
                    刷新
                
    </button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                
                
    <font size="2" color="blue"><b>顯示用戶數(shù):</b></font>
                
    <select id="size" name="userSize">
                    
    <option value="3" selected>3</option>
                    
    <option value="5">5</option>
                    
    <option value="10">10</option>
                    
    <option value="15">15</option>
                    
    <option value="20">20</option>
                
    </select>
            
    </center>
        
    </body>
    </html>


               UserAction.java

                
    package com.wen.test;

    import java.util.List;
    import java.util.Random;
    import java.util.Vector;


    import com.opensymphony.xwork2.ActionSupport;

    @SuppressWarnings(
    "serial")
    public class UserAction extends ActionSupport {

        
    private User user;

        
    private int userNumber;

        
    private List<User> userList;

        
    private List<String> msgList;

        
    public String delete() {

            String id 
    = user.getUserId();
            msgList 
    = new Vector<String>();

            
    // 當(dāng)userId第5為是4的時候刪除失敗
            if (id.charAt(4== '4'{
                msgList.add(
    "false");
                msgList.add(
    "刪除ID為:" + id + "用戶失敗!!");
            }
     else {
                
    // 刪除成功,做刪除操作
                msgList.add("true");
                msgList.add(
    "刪除ID為:" + id + "用戶成功!!");
            }

            
    return list();
        }


        
    public String list() {

            userList 
    = new Vector<User>();

            
    // 如果得不到usernuNmber,初始化為3。
            userNumber = userNumber == 0 ? 3 : userNumber;

            
    // 隨即得到 user 對象
            for (int i = 0; i < userNumber; i++{
                user 
    = new User();
                user.setUserId(
    "" + new Random().nextInt());
                user.setUserName(
    "name" + new Random().nextInt());
                user.setUserTel(
    "pass" + new Random().nextInt());
                userList.add(user);
            }

            
    return SUCCESS;
        }

        
        
    public User getUser() {
            
    return user;
        }


        
    public void setUser(User user) {
            
    this.user = user;
        }


        
    public List getMsgList() {
            
    return msgList;
        }


        
    public List getUserList() {
            
    return userList;
        }


        
    public void setUserNumber(int userNumber) {
            
    this.userNumber = userNumber;
        }

    }






    posted on 2007-08-17 15:24 月月鳥 閱讀(3060) 評論(17)  編輯  收藏 所屬分類: ajax

    FeedBack:
    # re: struts2.0 + ajax + xml (附源碼)
    2007-08-17 16:03 | 葉楓
    謝了,運(yùn)行通過。  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)[未登錄]
    2007-08-17 21:33 | david
    wst0350@163.com  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)[未登錄]
    2007-08-18 08:07 | biyeqian
    gymai@163.com  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)[未登錄]
    2007-08-19 12:44 | sclsch
    mark一下。  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)[未登錄]
    2007-08-19 12:44 | sclsch
    mark  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2007-08-20 12:45 | ahanflw
    請給我一份源碼謝謝!81773090@qq.com   回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2007-08-24 09:16 | 薛端陽
    我以前也作過這種方式的ajax提交,首先為什么要通過actionforward的jsp作為輸出內(nèi)容的載體,直接response輸出就可以了,第二 我覺得我覺得ajax提交的處理不應(yīng)該放在我們的action業(yè)務(wù)里面,他不算是一個具體的業(yè)務(wù)邏輯,可以用servlet或者webservice處理,應(yīng)該是單獨的一層,如果您有什么好的見解,希望與您交流  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2007-08-24 13:51 | 小影
    @薛端陽
    1. 首先放到j(luò)sp中處理是將數(shù)據(jù)處理的邏輯與業(yè)務(wù)剝離,如果放在業(yè)務(wù)中去處理那么業(yè)務(wù)就會很龐大,代碼也就不太清晰,當(dāng)然后有其他原因。

    2. ajax的業(yè)務(wù)處理也需要一些信息處理,比如說數(shù)據(jù)驗證、權(quán)限問題等等,當(dāng)然有的業(yè)務(wù)是不需要通過action就可以處理,比如說訪問一些公有的頁面等等,但是為了這些而單獨的去寫servlet或webservice那就完全沒有必要了,這樣顯的系統(tǒng)很雜亂。

    當(dāng)然這只是我個人的意見,大家也可以多多交流。

      回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2007-08-25 21:11 | badi
    非常感謝.
    我的郵箱是
    zhbadikill@163.com.
    先謝謝了.  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2007-08-28 18:56 | winson
    非常感謝
    我希望發(fā)給我 源碼
    我的郵箱是
    master6#163.com  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2007-08-31 15:56 | ghdvb@126.com
    感謝啊
    我的郵箱
    ghdvb@126.com  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2007-09-10 18:39 | xhl
    非常感謝
    我希望發(fā)給我 源碼
    我的郵箱是 xhl9500@163.com
      回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2007-09-28 23:42 | sunbeam
    非常感謝
    希望發(fā)給我 源碼
    我的郵箱是 sunxboy@gmail.com  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2007-10-17 11:29 | fei
    kary1109@sina.com  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2007-11-06 09:52 | mark
    也給我發(fā)一份,謝謝mark705@163.com  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2008-03-19 09:15 | li
    非常感謝
    我希望發(fā)給我 源碼
    l_w_qsoft@hotmail.com  回復(fù)  更多評論
      
    # re: struts2.0 + ajax + xml (附源碼)
    2008-06-18 21:37 | TYXING
    TIANYXI@126.COM

    THANK YOU  回復(fù)  更多評論
      

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


    網(wǎng)站導(dǎo)航:
     
    <2007年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    常用鏈接

    留言簿(5)

    隨筆分類(8)

    隨筆檔案(8)

    文章分類(1)

    文章檔案(1)

    其他

    娛樂

    技術(shù)

    搜索

    •  

    積分與排名

    • 積分 - 116562
    • 排名 - 503

    最新隨筆

    最新評論

    評論排行榜

    主站蜘蛛池模板: 亚洲成av人片天堂网| 亚洲第一视频在线观看免费| 久久亚洲国产精品五月天婷| 精品韩国亚洲av无码不卡区| 免费的黄色网页在线免费观看| av成人免费电影| 亚洲av午夜成人片精品电影| 全部一级一级毛片免费看| 亚洲AⅤ无码一区二区三区在线| 国产精品亚洲а∨无码播放| 怡红院免费的全部视频| h在线观看视频免费网站| 免费精品一区二区三区在线观看| 又粗又黄又猛又爽大片免费| 日韩色视频一区二区三区亚洲| 免费一级做a爰片性色毛片| sihu国产精品永久免费| 亚洲a一级免费视频| 无码日韩人妻AV一区免费l| 久久久久亚洲AV综合波多野结衣| 国产中文字幕在线免费观看| 亚洲午夜未满十八勿入| 日韩欧美一区二区三区免费观看 | 中国极品美軳免费观看| 亚洲AV一宅男色影视| 免费人成在线观看69式小视频| 亚洲午夜精品一区二区麻豆| 四虎国产精品免费永久在线| 亚洲视频在线观看视频| 国产偷国产偷亚洲高清在线| 无码中文在线二区免费| 无码色偷偷亚洲国内自拍| 国产成人麻豆亚洲综合无码精品| 最近2019年免费中文字幕高清 | 亚洲AV无码XXX麻豆艾秋| 亚洲精品国自产拍在线观看| 日本xxxx色视频在线观看免费| 亚洲成a人片在线看| 国产AV无码专区亚洲AV手机麻豆 | 精品在线免费视频| 114级毛片免费观看|