<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
    實(shí)現(xiàn)邏輯:

    ???? 實(shí)現(xiàn)user對(duì)象的select、delete,動(dòng)態(tài)的將數(shù)據(jù)更新到表格中。
    ?????select: 服務(wù)端返回xml數(shù)據(jù),在頁(yè)面進(jìn)行數(shù)據(jù)顯示。
    ?????delete :服務(wù)端將刪除信息以xml格式返回,包含刪除狀態(tài)和刪除信息。

    實(shí)現(xiàn)技術(shù):
    ?????????struts 2.0 + AJAX + XML

    主要文件:
    ?????????index.jsp????? user.java(數(shù)據(jù)模型)?????? UserAction.java(業(yè)務(wù)邏輯)?? struts.xml(struts2.0配置文件)

    index.jsp頁(yè)面:

    <%@?page?language="java"?pageEncoding="UTF-8"%>
    <%
    ????String?path?
    =?request.getContextPath();
    ????String?basePath?
    =?request.getScheme()?+?"://"
    ????????????
    +?request.getServerName()?+?":"?+?request.getServerPort()
    ????????????
    +?path?+?"/";
    %>

    <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">
    <html>
    ????
    <head>
    ????????
    <base?href="<%=basePath%>">
    ????????
    <title>test?javascript</title>
    ????
    </head>
    ????
    <script?defer="defer">
    ????
    ????????var?xmlHttp;???????
    //XMLHTTP對(duì)象
    ????????var?deleteRowId;???//刪除數(shù)據(jù)所在的行

    ????????
    //url:訪問(wèn)的URL??afterMothod:請(qǐng)求返回時(shí)所調(diào)用的方法(回調(diào)方法)
    ????????function?showHint(url,afterMothod)?{
    ????????????
    try{
    ????????????????xmlHttp?
    =?GetXmlHttpObject(afterMothod);
    ????????????????xmlHttp.open(
    "GET",url,false);
    ????????????????xmlHttp.send(
    null);
    ????????????}
    catch(e){
    ????????????????alert(e);
    ????????????}

    ????????}

    ????????
    ????????
    //創(chuàng)建XMLHTTP對(duì)象
    ????????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;
    ????????????}

    ????????}

    ????????
    //刷新數(shù)據(jù)
    ????????function?flush()?{
    ????????????
    try{
    ????????????????
    if?(xmlHttp.readyState?==?4?||?xmlHttp.readyState?==?"complete")?{
    ????????????????????var?xmlDoc?
    =?new?ActiveXObject("Microsoft.XMLDOM");
    ????????????????????xmlDoc.async
    =false;
    ????????????????????xmlDoc.loadXML(xmlHttp.responseText)??
    ????????????????
    ????????????????????
    //返回錯(cuò)誤代碼
    ????????????????????
    //var?error?=?xmlDoc.parseError.errorCode;
    ????????????????????
    //alert(error?xmlDoc.parseError.reason:"XML格式正確");
    ????????????????????
    ????????????????????var?users
    =xmlDoc.getElementsByTagName("user");
    ????????????????????clearTable(userTable);
    ????????????????????
    for(var?i=0;i<users.length;i++){
    ????????????????????????var?userRow
    =userTable.insertRow();
    ????????????????????????var?rowId
    =userRow.rowIndex;
    ????????????????????????
    ????????????????????????var?user
    =users[i];
    ????????????????????????var?userId
    =userRow.insertCell();
    ????????????????????????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();
    ????????????????????????var?deleteUrl
    ="user!delete.action?user.userId="+user.getAttribute("userId");
    ????????????????????????userOp.innerHTML
    ="<a?href=javascript:deleteRowId="+rowId+";showHint('"+deleteUrl+"',drop);>刪除</a>";
    ????????????????????}

    ????????????????}

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

    ????????}

    ????????
    //刪除數(shù)據(jù)
    ????????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{
    ????????????????????userTable.deleteRow(deleteRowId);
    ????????????????????alert(msg.getAttribute(
    "msgString"));
    ????????????????}

    ????????????}

    ????????}

    ????????
    ????????
    //清空表數(shù)據(jù)
    ????????function?clearTable(opTable){
    ????????????
    ????????????var?size
    =opTable.rows.length;
    ????????????
    for(var?i=2;i<size;i++){
    ????????????????opTable.deleteRow(
    2);
    ????????????}

    ????????????
    ????????}

    ????????????
    ????
    </script>
    ????
    <body>
    ????????
    <center>
    ????????????
    <h3>
    ????????????????用戶列表
    ????????????
    </h3>
    ????????????
    <br>
    ????????????
    <table?id="userTable"?title="用戶列表"?width="50%">
    ????????????????
    <tbody>
    ????????????????????
    <tr?bgcolor="#54821f">
    ????????????????????????
    <td?width="15%">
    ????????????????????????????ID
    ????????????????????????
    </td>
    ????????????????????????
    <td?width="15%">
    ????????????????????????????姓名
    ????????????????????????
    </td>
    ????????????????????????
    <td?width="20%">
    ????????????????????????????電話
    ????????????????????????
    </td>
    ????????????????????????
    <td?width="5%">
    ????????????????????????????操作
    ????????????????????????
    </td>
    ????????????????????
    <tr>
    ????????????????
    </tbody>
    ????????????
    </table>
    ????????????
    <br>
    ????????????
    <br>
    ????????????
    <br>
    ????????????
    <button?onclick="showHint('user!list.action',flush);">
    ????????????????刷新
    ????????????
    </button>
    ????????
    </center>
    ????
    </body>
    </html>


    user.java


    package?com.wen.test;

    public?class?User?{

    ????
    private?String?userId;

    ????
    private?String?userName;

    ????
    private?String?userTel;

    ????
    public?String?getUserId()?{
    ????????
    return?userId;
    ????}


    ????
    public?void?setUserId(String?userId)?{
    ????????
    this.userId?=?userId;
    ????}


    ????
    public?String?getUserName()?{
    ????????
    return?userName;
    ????}


    ????
    public?void?setUserName(String?userName)?{
    ????????
    this.userName?=?userName;
    ????}


    ????
    public?String?getUserTel()?{
    ????????
    return?userTel;
    ????}


    ????
    public?void?setUserTel(String?userTel)?{
    ????????
    this.userTel?=?userTel;
    ????}

    }


    UserAction.java


    package?com.wen.test;

    import?java.util.List;
    import?java.util.Vector;

    import?com.opensymphony.xwork2.ActionSupport;

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

    ????
    private?User?user;
    ????
    private?List<User>?userList;
    ????
    private?List<String>?msgList;
    ????
    ????
    public?String?flush(){
    ????????
    return?SUCCESS;
    ????}

    ????
    ????
    public?String?delete(){
    ????????
    ????????
    int?id=Integer.parseInt(user.getUserId());
    ????????msgList
    =new?Vector<String>();
    ????????
    if(id<0||id>3){
    ????????????msgList.add(
    "false");
    ????????????msgList.add(
    "刪除ID為:"+id+"用戶失敗!!");
    ????????}
    else{
    ????????????
    //做刪除操作
    ????????????msgList.add("true");
    ????????????msgList.add(
    "刪除ID為:"+id+"用戶成功!!");
    ????????}

    ????????
    return?SUCCESS;
    ????}

    ????
    ????
    public?String?list(){
    ????????
    ????????userList
    =new?Vector<User>();
    ????????
    ????????user
    =new?User();
    ????????user.setUserId(
    "0");
    ????????user.setUserName(
    "wen");
    ????????user.setUserTel(
    "029-82507114");
    ????????userList.add(user);
    ????????
    ????????user
    =new?User();
    ????????user.setUserId(
    "1");
    ????????user.setUserName(
    "peng");
    ????????user.setUserTel(
    "029-34650060");
    ????????userList.add(user);
    ????????
    ????????user
    =new?User();
    ????????user.setUserId(
    "2");
    ????????user.setUserName(
    "tao");
    ????????user.setUserTel(
    "13570854091");
    ????????userList.add(user);
    ????????
    ????????user
    =new?User();
    ????????user.setUserId(
    "2");
    ????????user.setUserName(
    "tao");
    ????????user.setUserTel(
    "13570854091");
    ????????userList.add(user);
    ????????
    ????????user
    =new?User();
    ????????user.setUserId(
    "2");
    ????????user.setUserName(
    "tao");
    ????????user.setUserTel(
    "13570854091");
    ????????userList.add(user);
    ????????
    ????????user
    =new?User();
    ????????user.setUserId(
    "2");
    ????????user.setUserName(
    "tao");
    ????????user.setUserTel(
    "13570854091");
    ????????userList.add(user);
    ????????
    ????????user
    =new?User();
    ????????user.setUserId(
    "2");
    ????????user.setUserName(
    "tao");
    ????????user.setUserTel(
    "13570854091");
    ????????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;
    ????}

    }



    struts.xml


    <?xml?version="1.0"?encoding="UTF-8"?>
    <!DOCTYPE?struts?PUBLIC
    ????????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN"
    ????????"http://struts.apache.org/dtds/struts-2.0.dtd"
    >
    <struts>
    ????
    <constant?name="struts.enable.DynamicMethodInvocation"
    ????????value
    ="true"?/>
    ????
    <constant?name="struts.devMode"?value="true"?/>

    ????
    <package?name="users"?extends="struts-default">

    ????????
    <result-types>
    ????????????
    <result-type?name="userInfo"?class="com.wen.test.User"?/>
    ????????????
    <result-type?name="userList"?class="java.util.List"?/>
    ????????????
    <result-type?name="msgList"?class="java.util.List"?/>
    ????????
    </result-types>

    ????????
    <action?name="user"?class="com.wen.test.UserAction">
    ????????????
    <result>/result.jsp</result>
    ????????
    </action>
    ????
    </package>
    </struts>


    END

    ????希望對(duì)初學(xué)著有所幫助,歡迎大家一起探討java 問(wèn)題!!
    posted on 2007-08-15 13:05 月月鳥(niǎo) 閱讀(1826) 評(píng)論(9)  編輯  收藏 所屬分類(lèi): ajax

    FeedBack:
    # re: struts 2.0 + 原始 AJAX + XML
    2007-08-15 17:18 | 編程、設(shè)計(jì)是職業(yè)更是愛(ài)好
    不錯(cuò),大道至簡(jiǎn)。對(duì)于WEB開(kāi)發(fā),濫用的Tag是災(zāi)難。  回復(fù)  更多評(píng)論
      
    # re: struts 2.0 + 原始 AJAX + XML
    2009-02-12 23:09 | 繼文
    上面的樓主:你上面的例子能正常測(cè)試嗎?我怎么得到action中返回的一個(gè)頁(yè)面呢,希望在解釋一下。  回復(fù)  更多評(píng)論
      
    # re: struts 2.0 + 原始 AJAX + XML
    2011-10-19 12:22 | ww
    最突出的功能自然是調(diào)試(Debug),可以對(duì)Java代碼,JavaScript,JQuery,Ajax等技術(shù)進(jìn)行調(diào)試。   其他編輯功能拋開(kāi)不看,這點(diǎn)遠(yuǎn)勝Eclipse。   首先查看Map類(lèi)型的對(duì)象,如果實(shí)現(xiàn)類(lèi)采用的是哈希映射,則會(huì)自動(dòng)過(guò)濾空的Entry實(shí)例。 不像Eclipse,只能在默認(rèn)的toString()方法中尋找你所要的key。   其次,需要?jiǎng)討B(tài)Evaluate一個(gè)表達(dá)式的值,比如我得到了一個(gè)類(lèi)的實(shí)例,但是并不知曉它的API,可以通過(guò)Code Completion點(diǎn)出它所支持的方法,這點(diǎn)Eclipse無(wú)法比擬。   最后,在多線程調(diào)試的情況下,Log on console的功能可以幫你檢查多線程執(zhí)行的情況。   前面已經(jīng)說(shuō)過(guò)了IDEA所提倡的是智能編碼,是減少程序員的工作,那么IDEA具體又有哪些值得推崇呢?總結(jié)以下25點(diǎn),希望能有個(gè)比較全面的介紹。   1. 智能的選取。在很多時(shí)候我們要選取某個(gè)方法,或某個(gè)循環(huán)或想一步一步從一個(gè)變量到整個(gè)類(lèi)慢慢擴(kuò)充著選取,IDEA就提供這種基于語(yǔ)法的選擇,在默認(rèn)設(shè)置中Ctrl+w,可以實(shí)現(xiàn)選取范圍的不斷擴(kuò)充,這種方式在重構(gòu)的時(shí)候尤其顯得方便。   2. 豐富的導(dǎo)航模式。IDEA提供了豐富的導(dǎo)航查看模式,例如ctrl+e顯示最近打開(kāi)過(guò)的文件,ctrl+n顯示你希望顯示的類(lèi)名查找框   (該框同樣有智能補(bǔ)充功能,當(dāng)你輸入字母后IDEA將顯示所有候選類(lèi)名)。在最基本的project試圖中,你還可以選擇多種的試圖方式。   3. 歷史記錄功能。不用通過(guò)版本管理服務(wù)器,單純的IDEA就可以查看任何工程中文件的歷史記錄,但版本恢復(fù)時(shí)你可以很容易的將其恢復(fù)。   4. JUnit的完美支持。   5. 對(duì)重構(gòu)的優(yōu)越支持。IDEA是所有IDE中最早支持重構(gòu)的,其優(yōu)秀的重構(gòu)能力一直是其主要賣(mài)點(diǎn)之一。   6. 編碼輔助。java規(guī)范中提倡的tostring(),hashcode(),equals(),以及所有的get/set方法,你可以不用進(jìn)行任何的輸入就可以實(shí)現(xiàn)代碼的自動(dòng)生成,從而把你從無(wú)聊的基本方法編碼中解放出來(lái)。   7. 靈活的排版功能。基本所有的IDE都有重排版功能,但僅有IDEA的是人性的,因?yàn)樗С峙虐婺J降亩ㄖ疲憧梢愿鶕?jù)不同的項(xiàng)目要求采用不同的排版方式。   8. XML的完美支持。   9. 簡(jiǎn)潔易用的GUI界面。   10. 與文件系統(tǒng)自動(dòng)同步。當(dāng)你最小化IDEA,直接對(duì)文件進(jìn)行編輯之后,重新打開(kāi)IDEA后IDEA將自動(dòng)的完成文件的更新,而不用重新導(dǎo)入工程或刷新工程。   11. 自定義的快捷鍵。強(qiáng)大的快捷鍵設(shè)置,基本可以讓程序員離開(kāi)鼠標(biāo)工作。   12. 動(dòng)態(tài)語(yǔ)法檢測(cè)。任何不符合java規(guī)范,自己預(yù)定義的規(guī)范,累贅都將在頁(yè)面中加亮顯示。   13. 代碼檢查。對(duì)代碼進(jìn)行自動(dòng)分析,檢測(cè)不符合規(guī)范的,存在風(fēng)險(xiǎn)的代碼,并加亮顯示。   14. 對(duì)JSP的完全支持。不需要任何的插件,完全支持JSP。   15. 智能編輯。代碼輸入過(guò)程中,自動(dòng)補(bǔ)充方法或類(lèi)。   16. EJB支持。不需要任何插件完全支持EJB(6.0 支持ejb3.0)   17. 列編輯模式。用過(guò)UtralEdit的肯定對(duì)其的列編輯模式贊賞不已,因?yàn)樗郎p少了很多很多的無(wú)聊重復(fù)工作,而IDEA完全支持該模式,從而更加提高了編碼效率。   18. 智能模板。預(yù)置模板可以讓你把經(jīng)常用到的方法編輯進(jìn)模板,使用時(shí)你只用輸入簡(jiǎn)單的幾個(gè)字母就可以完成全部代碼的編寫(xiě)。例如使用比較高的public static void main(String[] args){}你可以在模板中預(yù)設(shè)pm為該方法,輸入時(shí)你只要輸入pm再按代碼輔助鍵,IDEA將完成代碼的自動(dòng)輸入。   19. 完美的自動(dòng)代碼完成。智能檢查類(lèi)中方法,當(dāng)發(fā)現(xiàn)方法名只有一個(gè)時(shí)自動(dòng)完成代碼輸入,從而減少剩下代碼的編寫(xiě)工作。   20. Ant 支持。不需要任何的第三方插件。   21. 不使用代碼檢查。自動(dòng)檢查代碼中不使用的代碼,并給出提示,從而使代碼更高效。   22. 智能代碼。自動(dòng)檢查代碼,發(fā)現(xiàn)與預(yù)置規(guī)范有出入的代碼給出提示,若程序員同意修改自動(dòng)完成修改。例如代碼:String str = "Hello Intellij " + "IDEA"; IDEA將給出優(yōu)化提示,若程序員同意修改IDEA將自動(dòng)將代碼修改為:String str = "Hello Intellij IDEA";   23. 正則表達(dá)的查找和替換功能。查找替代支持正則表達(dá),從而提高效率。   24. JavaDoc預(yù)覽支持。支持JavaDoc的預(yù)覽功能,在JavaDoc代碼中ctrl+q顯示JavaDoc的結(jié)果,從而提高doc文檔的質(zhì)量。   25. 程序員意圖支持。當(dāng)程序員編碼時(shí)IDEA時(shí)時(shí)檢測(cè)你的意圖,或提供建議,或直接幫你完成代碼。  回復(fù)  更多評(píng)論
      
    # re: struts 2.0 + 原始 AJAX + XML[未登錄](méi)
    # re: struts 2.0 + 原始 AJAX + XML[未登錄](méi)
    2011-11-02 10:55 | pp
    2011-9-29 2
    2011-10-10 0.5
    2011-10-11 0.5
    2011-10-12 2
    2011-10-13 0.5
    2011-10-17 0.5
    2011-10-18 1
    2011-10-19 3
    2011-10-20 1
    2011-10-23 12
    2011-10-24 0.5
    2011-10-25 1
    2011-10-29 7.5  回復(fù)  更多評(píng)論
      
    # re: struts 2.0 + 原始 AJAX + XML[未登錄](méi)
    2011-11-03 09:19 | qq
    2011/10/12 2
    2011/10/17 0.5
    2011/10/18 1
    2011/10/19 0.5
    2011/10/20 1
    2011/10/23 11
    2011/10/25 1
    2011/10/29 7.5
      回復(fù)  更多評(píng)論
      
    # re: struts 2.0 + 原始 AJAX + XML
    # re: struts 2.0 + 原始 AJAX + XML[未登錄](méi)

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


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

    常用鏈接

    留言簿(5)

    隨筆分類(lèi)(8)

    隨筆檔案(8)

    文章分類(lèi)(1)

    文章檔案(1)

    其他

    娛樂(lè)

    技術(shù)

    搜索

    •  

    積分與排名

    • 積分 - 116267
    • 排名 - 503

    最新隨筆

    最新評(píng)論

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲精品中文字幕| 久久九九AV免费精品| 免费AA片少妇人AA片直播| 久久精品国产精品亚洲艾草网美妙| 亚洲成人免费在线观看| 99免费在线视频| 又粗又黄又猛又爽大片免费 | 亚洲一区二区三区在线观看蜜桃| caoporm超免费公开视频| 在线观看91精品国产不卡免费| 亚洲视频免费观看| 三级黄色在线免费观看| 亚洲av无码专区在线观看素人| 亚洲中文字幕一二三四区| 美丽姑娘免费观看在线观看中文版 | 亚洲中文字幕无码中文| 少妇太爽了在线观看免费视频| 亚洲午夜AV无码专区在线播放| 亚洲av纯肉无码精品动漫| 69成人免费视频| 久久久久久亚洲精品成人| 中文字幕乱码免费看电影| 亚洲国产高清在线一区二区三区 | 久久亚洲免费视频| 亚洲国产精品无码久久久秋霞2 | 亚洲2022国产成人精品无码区| 黄色视屏在线免费播放| 亚洲国产av无码精品| 国产精品无码亚洲一区二区三区| 歪歪漫画在线观看官网免费阅读| 亚洲高清免费在线观看| 久久九九AV免费精品| 亚洲AV乱码一区二区三区林ゆな| 韩国免费a级作爱片无码| 亚洲中文字幕丝袜制服一区| 视频一区二区三区免费观看| 四虎永久在线免费观看| 亚洲AV无码一区二区乱子仑| 热99re久久精品精品免费| 亚洲日韩看片无码电影| 免费人成视频在线|