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

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

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

    JAVA涂鴉
    關于JAVA的點點滴滴
    posts - 50,  comments - 689,  trackbacks - 0
    這個一個ajax的經典示例,也是ajax的長處所在。不多說了,下面來看代碼。

    項目結構圖:
    option1.jpg

    index.jsp:
    <%@?page?language="java"?contentType="text/html;?charset=utf-8"%>

    <html>
    ??
    <head>
    ????
    <title>My?JSP?'index.jsp'?starting?page</title>
    ????
    <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8">
    ????
    <SCRIPT?type="text/javascript">
    ????????var?req;
    ????????window.onload
    =function(){
    ????????}
    ????????
    ????????function?Change_Select()
    ????????{
    ????????????var?zhi
    =document.getElementById('hero').value;
    ????????????var?url
    ="select?id="+escape(zhi);
    ????????????
    if(window.XMLHttpRequest)
    ????????????{
    ????????????????req
    =new?XMLHttpRequest();
    ????????????}
    else?if(window.ActiveXObject)
    ????????????{
    ????????????????req
    =new?ActiveXObject("Microsoft.XMLHTTP");
    ????????????}
    ????????????
    ????????????
    if(req)
    ????????????{
    ????????????????req.open(
    "GET",url,true);
    ????????????????req.onreadystatechange
    =callback;
    ????????????????req.send(
    null);
    ????????????}
    ????????}
    ????????
    ????????function?callback()
    ????????{
    ????????????
    if(req.readyState?==?4)
    ????????????{
    ????????????????
    if(req.status?==?200)
    ????????????????{
    ????????????????????parseMessage();
    ????????????????}
    else{
    ????????????????????alert(
    "Not?able?to?retrieve?description"+req.statusText);
    ????????????????}
    ????????????}
    ????????}
    ????????
    ????????function?parseMessage()
    ????????{
    ????????????var?xmlDoc
    =req.responseXML.documentElement;
    ????????????var?xSel
    =xmlDoc.getElementsByTagName('select');
    ????????????var?select_root
    =document.getElementById('skill');
    ????????????select_root.options.length
    =0;
    ????????????
    ????????????
    for(var?i=0;i<xSel.length;i++)
    ????????????{
    ????????????????var?xValue
    =xSel[i].childNodes[0].firstChild.nodeValue;
    ????????????????var?xText
    =xSel[i].childNodes[1].firstChild.nodeValue;
    ????????????????var?option
    =new?Option(xText,xValue);
    ????????????????
    try{
    ????????????????????select_root.add(option);
    ????????????????}
    catch(e){
    ????????????????}
    ????????????}
    ????????????
    ????????????
    ????????}
    ????
    </SCRIPT>
    ??
    </head>
    ??
    ??
    <body>
    ????
    <div?align="center">
    ????????
    <form?name="form1"?method="post"?action="">
    ????????????
    <TABLE?width="70%"?boder="0"?cellspacing="0">
    ????????????????
    <TR>
    ????????????????????
    <TD?align="center">Double?Select?Box</TD>
    ????????????????
    </TR>
    ????????????????
    <TR>
    ????????????????????
    <TD>
    ????????????????????????
    <SELECT?name="hero"?id="hero"?onChange="Change_Select()">
    ????????????????????????????
    <OPTION?value="0">Unbounded</OPTION>
    ????????????????????????????
    <OPTION?value="1">D.K.</OPTION>
    ????????????????????????????
    <OPTION?value="2">NEC.</OPTION>
    ????????????????????????????
    <OPTION?value="3">BOSS</OPTION>
    ????????????????????????
    </SELECT>
    ????????????????????????
    <SELECT?name="skill"?id="skill">
    ????????????????????????????
    <OPTION?value="0">Unbounded</OPTION>
    ????????????????????????
    </SELECT>
    ????????????????????
    </TD>
    ????????????????
    </TR>
    ????????????????
    <TR><td>&nbsp;</td></TR>
    ????????????
    </TABLE>
    ????????
    </form>
    ????
    </div>
    ??
    </body>
    </html>

    SelectServlet.java:
    package?com;

    import?java.io.IOException;
    import?java.io.PrintWriter;

    import?javax.servlet.ServletException;
    import?javax.servlet.http.HttpServlet;
    import?javax.servlet.http.HttpServletRequest;
    import?javax.servlet.http.HttpServletResponse;

    public?class?SelectServlet?extends?HttpServlet?{

    ????
    /**
    ?????*?Constructor?of?the?object.
    ?????
    */
    ????
    public?SelectServlet()?{
    ????????
    super();
    ????}

    ????
    /**
    ?????*?Destruction?of?the?servlet.?<br>
    ?????
    */
    ????
    public?void?destroy()?{
    ????????
    super.destroy();?//?Just?puts?"destroy"?string?in?log
    ????????
    //?Put?your?code?here
    ????}

    ????
    /**
    ?????*?The?doGet?method?of?the?servlet.?<br>
    ?????*
    ?????*?This?method?is?called?when?a?form?has?its?tag?value?method?equals?to?get.
    ?????*?
    ?????*?
    @param?request?the?request?send?by?the?client?to?the?server
    ?????*?
    @param?response?the?response?send?by?the?server?to?the?client
    ?????*?
    @throws?ServletException?if?an?error?occurred
    ?????*?
    @throws?IOException?if?an?error?occurred
    ?????
    */
    ????
    public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)
    ????????????
    throws?ServletException,?IOException?{
    ????????response.setContentType(
    "text/xml");
    ????????response.setHeader(
    "Cache-Control","no-cache");
    ????????
    ????????String?targetId
    =request.getParameter("id").toString();
    ????????String?xml_start
    ="<selects>";
    ????????String?xml_end
    ="</selects>";
    ????????String?xml
    ="";
    ????????
    if(targetId.equalsIgnoreCase("0")){
    ????????????xml
    ="<select><value>0</value><text>Unbounded</text></select>";
    ????????}
    else?if(targetId.equalsIgnoreCase("1")){
    ????????????xml
    ="<select><value>1</value><text>Mana?Burn</text></select>";
    ????????????xml?
    +="<select><value>2</value><text>Death?Coil</text></select>";
    ????????????xml?
    +="<select><value>3</value><text>Unholy?Aura</text></select>";
    ????????????xml?
    +="<select><value>4</value><text>Unholy?Fire</text></select>";
    ????????}
    else?if(targetId.equalsIgnoreCase("2")){
    ????????????xml
    ="<select><value>1</value><text>Corprxplode</text></select>";
    ????????????xml?
    +="<select><value>2</value><text>Raise?Dead</text></select>";
    ????????????xml?
    +="<select><value>3</value><text>Brilliance?Aura</text></select>";
    ????????????xml?
    +="<select><value>4</value><text>Aim?Aura</text></select>";
    ????????}
    else{
    ????????????xml
    ="<select><value>1</value><text>Rain?of?Chaos</text></select>";
    ????????????xml?
    +="<select><value>2</value><text>Finger?of?Death</text></select>";
    ????????????xml?
    +="<select><value>3</value><text>Bash</text></select>";
    ????????????xml?
    +="<select><value>4</value><text>Summon?Doom</text></select>";
    ????????}
    ????????String?last_xml
    =xml_start+xml+xml_end;
    ????????response.getWriter().write(last_xml);
    ????}

    ????
    /**
    ?????*?The?doPost?method?of?the?servlet.?<br>
    ?????*
    ?????*?This?method?is?called?when?a?form?has?its?tag?value?method?equals?to?post.
    ?????*?
    ?????*?
    @param?request?the?request?send?by?the?client?to?the?server
    ?????*?
    @param?response?the?response?send?by?the?server?to?the?client
    ?????*?
    @throws?ServletException?if?an?error?occurred
    ?????*?
    @throws?IOException?if?an?error?occurred
    ?????
    */
    ????
    public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)
    ????????????
    throws?ServletException,?IOException?{

    ????????doGet(request,response);
    ????}

    ????
    /**
    ?????*?Initialization?of?the?servlet.?<br>
    ?????*
    ?????*?
    @throws?ServletException?if?an?error?occure
    ?????
    */
    ????
    public?void?init()?throws?ServletException?{
    ????????
    //?Put?your?code?here
    ????}

    }

    web.xml:
    <?xml?version="1.0"?encoding="UTF-8"?>
    <web-app?version="2.4"?
    ????xmlns
    ="http://java.sun.com/xml/ns/j2ee"?
    ????xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"?
    ????xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee?
    ????http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    ??<servlet>
    ????
    <servlet-name>SelectServlet</servlet-name>
    ????
    <servlet-class>com.SelectServlet</servlet-class>
    ??
    </servlet>

    ??
    <servlet-mapping>
    ????
    <servlet-name>SelectServlet</servlet-name>
    ????
    <url-pattern>/select</url-pattern>
    ??
    </servlet-mapping>
    ????
    ????
    <welcome-file-list>
    ????????
    <welcome-file>index.jsp</welcome-file>
    ????
    </welcome-file-list>
    </web-app>

    運行結果圖:
    option2.jpg
    posted on 2006-05-17 11:10 千山鳥飛絕 閱讀(24005) 評論(25)  編輯  收藏 所屬分類: Ajax

    FeedBack:
    # re: Ajax實現二級聯動下拉框
    2006-10-16 17:36 | yam
    好東西
    謝謝  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2006-11-20 09:48 | 孤枕
    試了。效果不錯。  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2006-12-08 11:05 | 980
    哥們 我怎么沒有測試出來呢 提示
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)

    原來是缺少standard-1.0.6.jar。因為Ajax Tags運行的標簽所對應的TLD需要org.apache.taglib包來解析,Tomcat4.1好像沒有自帶。


    是這樣嗎 ???????????????

      回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2007-04-25 10:26 | 1
    我拷貝了你的js ,彈出了了對話框“Not able to retrieve desctiptionNot Found”  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2007-10-27 09:27 | hql
    @1
    var url="select?id="+escape(zhi);
    你的url(上邊的)寫錯了,檢查以下吧.  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2007-10-27 09:30 | hql
    有個問題問以下,為什么上面的程序在IE下運行正常,而在firefox就不正常了,怎么該才能兼容IE和Firefox?  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2007-10-29 20:52 | uidin
    剛剛試了用struts標簽也可以實現,但是想從頁面上取得數據就不行,好像涉及到字符類型的問題  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2007-12-07 12:51 | 但是
    還沒試,用后在說  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2008-04-28 16:45 | 635151438
    在ASP中怎么實現?  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2008-05-19 11:39 | 番隊副
    真好用,學習一下  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2008-05-29 19:00 | QQ:523519512
    沒有成功!  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2008-08-07 11:02 | java student
    這個沒有連接數據庫啊 ?  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2008-09-11 15:44 | kerry
    我這兒select_root.add(option);
    改成select_root.options.add(option);才有用
    難道樓主是打3C的?  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框[未登錄]
    2008-09-16 14:34 | java fan
    好像不能連接數據庫啊 ?
    如果不用連接數據庫的話 幾行代碼就可以了 不用這么麻煩吧 ?  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框[未登錄]
    2008-11-13 15:47 | 鳥人
    簡潔 明了   回復  更多評論
      
    # re: Ajax實現二級聯動下拉框[未登錄]
    2009-02-26 18:14 | aaa
    改寫的地方“如下 ”
    select_root.options.add(option);(難道樓主是打3C的?)
    var url="select?id="+escape(zhi); 改成 var url="SelectServlet?id="+escape(zhi);

      回復  更多評論
      
    # re: Ajax實現二級聯動下拉框[未登錄]
    2009-05-24 11:10 | super
    代碼測試通過!  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2009-08-14 14:23 | Movo
    太感謝你了!  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2009-11-25 16:06 | 大鳥哥
    我開始用 var xmlDoc=req.responseXML.documentElement;
    始終執行到 var xSel=xmlDoc.getElementsByTagName('select');這一句報錯,得到為空.我換成
    var xmlStr=req.responseText;之后.
    再創建一個js的xml解析對象來吧字符串轉成對象,就可了.
    樓主的方法我行不通,不知道原因,有知道的解釋下謝謝  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2010-11-04 23:23 | silk
    Ajax+HTML 能實現 嗎?  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2011-03-26 21:42 | index
    你好,老大,那我怎么傳值到列表里面啊?謝謝了  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2011-04-01 16:15 | ddr
    不知道為什么按照樓主原來的測試不通過:
    把:
    var xmlDoc=req.responseXML.documentElement;
    改成:
    var xmlDoc=req.responseXML;
    其中:
    var xSel=xmlDoc.getElementsByTagName('select');
    要與類中的輸出的標簽名一致,也就是是<select></select>
    類中輸出的時候我這改成:
    response.setContentType("text/xml;charset=GB2312");
    PrintWriter out = response.getWriter();
    out.write(last_xml);
    out.close();
    return null;
    就通過了!  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2011-04-13 15:02 | ylll111
    @ddr
    ////////////////////////////
    其中:
    var xSel=xmlDoc.getElementsByTagName('select');
    要與類中的輸出的標簽名一致,也就是是<select></select>
    ///////////////////////////
    這個xSel應該怎么獲取呢。謝謝  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2011-07-09 15:14 | 安多
    如果連數據庫 后該如何 寫 xml文件啊? 我把樓主的定值換成數據庫查出來的就不好使了  回復  更多評論
      
    # re: Ajax實現二級聯動下拉框
    2012-02-10 12:46 | lzy
    怎么連庫后返回漢字亂碼,再javabean里面打印不是亂碼 頁面上亂碼  回復  更多評論
      
    正在閱讀:



    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(35)

    隨筆檔案

    文章分類

    文章檔案

    好友的blog

    我的其他blog

    老婆的Blog

    搜索

    •  

    積分與排名

    • 積分 - 775154
    • 排名 - 56

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 在线美女免费观看网站h| 国产成人午夜精品免费视频| 在线观看av永久免费| 国产91在线免费| 亚洲高清视频在线观看| 亚洲αⅴ无码乱码在线观看性色| 成在线人视频免费视频| 特级做A爰片毛片免费69| 亚洲一区二区三区AV无码| 国产成人精品日本亚洲直接| h视频在线免费观看| 黄瓜视频高清在线看免费下载| 中文字幕精品亚洲无线码一区| 亚洲毛片基地4455ww| 四虎影视无码永久免费| 日本免费人成黄页网观看视频| 亚洲AV人无码激艳猛片| 免费国产在线精品一区| 无码国产精品久久一区免费| 国产亚洲福利精品一区| 国产成人va亚洲电影| 亚洲一区二区免费视频| 亚洲日韩中文无码久久| 国产精品亚洲专区无码牛牛| 久久久久久精品免费看SSS | 国产成人涩涩涩视频在线观看免费| 亚洲av午夜福利精品一区 | 小草在线看片免费人成视久网| 国产在线观看www鲁啊鲁免费| 亚洲欧洲春色校园另类小说| 久久久WWW成人免费精品| 国产精品无码免费视频二三区 | a毛片免费播放全部完整| 国产亚洲福利一区二区免费看| 91亚洲国产成人久久精品| 亚洲阿v天堂在线2017免费| 日韩免费电影在线观看| 亚洲国产精品网站久久| 国产免费无码一区二区| 亚洲国产精品丝袜在线观看| 亚洲国产欧美一区二区三区|