如何學好java

          如何學好java,其實很簡單,只要用心體會,慢慢積累!
          posts - 106, comments - 7, trackbacks - 0, articles - 3
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          今天周末,但是我還得好好總結一下ajax和xml

          Posted on 2011-04-24 14:36 哈希 閱讀(142) 評論(0)  編輯  收藏 所屬分類: xml 文件
          開始:
            首先來研究一下級聯吧:
            知道級聯的原理嗎?很簡單,根據前一個選它有關系的下一個哦,呵呵!
            那做起來代碼怎么寫呢:肯定一點,必須要用到js技術了,你要有事件的么,你看好了,級聯要這樣寫啊:

          javascript:new Option(text, value)

          <script>
           function selected(){
            var arr
          =new Array();
            arr[
          0]=["a","b","c","d"];
            arr[
          1]=["c++","oracle","sql","js"];
            var i
          =document.form1.selterm.selectedIndex-1;//這里selectedIndex是什么意思為什么還有減去1呢?
            document.form1.select2.length=0;//清空
            document.form1.select2.options.add(new Option("請選擇"));//不是很懂
            var op;
            
          for(var j in arr[i]){
             op
          =new Option(arr[i][j],arr[i][j]);//?
             document.form1.select2.options.add(op);//?
            } 
           }
          </script>
          <form name="form1" method="post">
          <select name="selterm" id="selterm" onchange="selected()">
                    
          <option>請選擇</option>
                    
          <option value="1">1學期</option>
                    
          <option value="2">2學期</option>
          </select>
          <select name="select2">
                    
          <option>請選擇</option>
          </select>
          </form>

          具體解釋:
          其實他這里是個js的二維數組,arr[0]=["a","b","c","d"];
          arr[1]=["c++","oracle","sql","js"];數組下標為0的有"a","b","c","d";
          數組下標為1的有"c++","oracle","sql","js",
          var i=document.form1.selterm.selectedIndex-1;這句話其實跟op=new Option(arr[i][j],arr[i][j]);有關,舉個例子,選擇1學期的時候,
          document.form1.selterm.selectedIndex為1,-1之后為0,然后找到arr[0],也就是["a","b","c","d"]),然后new出一個Option(arr[0][j],arr[0][j]);
          (一個option包含顯示的內容和value值。)在清空之后,select下面是空的,必須加一個請選擇的option填充,其實把下標修改一下,arr[1]=["a","b","c","d"]; arr[2]=["c++","oracle","sql","js"];這時候var i=document.form1.selterm.selectedIndex就可以了,不需要減1了,不知道你是否明白意思了

          準備工作完了,繼續ajax來完成級聯啊:
             先看java代碼:
          public class OptionServlet extends HttpServlet {
              
          private Map<String,List<String>> 
                  options
          =new TreeMap<String,List<String>>();
              
          public void init(){
                  List
          <String> list1=new ArrayList<String>();
                  list1.add(
          "請選擇");
                  options.put(
          "0", list1);
                  List
          <String> list2
                  
          =new ArrayList<String>();
                  list2.add(
          "寧波");
                  list2.add(
          "杭州");
                  list2.add(
          "嘉興");
                  options.put(
          "1", list2);
                  List
          <String> list3=new ArrayList<String>();
                  list3.add(
          "蘇州");
                  list3.add(
          "南京");
                  list3.add(
          "無錫");
                  options.put(
          "2", list3);
                  List
          <String> list4=new ArrayList<String>();
                  list4.add(
          "楊浦區");
                  list4.add(
          "黃浦區");
                  list4.add(
          "徐匯區");
                  options.put(
          "3", list4);
              }
              
              
          public void doGet(HttpServletRequest request, HttpServletResponse response)
                      
          throws ServletException, IOException {
                  doPost(request,response);
                  
              }
              
          public void doPost(HttpServletRequest request, HttpServletResponse response)
                      
          throws ServletException, IOException {
                  String province
                  
          =request.getParameter("province");
                  List
          <String> cities
                          
          =options.get(province);
                  request.setAttribute(
                          
          "cities", cities);
                  RequestDispatcher rd
                  
          =request.getRequestDispatcher(
                          
          "result.jsp");
                  rd.forward(request, response);
              }

          }
          js代碼:
          js代碼

          好了就這么簡單!呵呵,ajax不難吧!
          接下來,我們研究一下xml解析吧:
          book.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <books>
              
          <book id="001">
                  
          <name>精通Servlet</name>
                  
          <price>30.0</price>
              
          </book>
              
          <book id="002">
                  
          <name>深入淺出Hibernate</name>
                  
          <price>40.0</price>
              
          </book>
              
          <book id="003">
                  
          <name>Thinking In Java</name>
                  
          <price>50.0</price>
              
          </book>
              
          <book id="004">
                  
          <name>EJB</name>
                  
          <price>50.0</price>
              
          </book>
          </books>
          function loadXml(){
                  var booksDiv
          =document.getElementById("booksDiv");
                  booksDiv
          ="正在裝載xml,請等待..";
                  sendAsynchronRequest(
                  
          "books.xml",null,loadXmlCallBack);
              }
              function loadXmlCallBack(){
                  
          if (xmlHttp.readyState == 4) {
                      
          if (xmlHttp.status == 200) {
                          var result
          =xmlHttp.responseXML;
                          var books
                          
          =result.getElementsByTagName("book");
                          var booksHtml
          ="<table border=1 width=30% >"
                                       
          +"<tr><td>編號</td><td>名稱</td>"
                                       
          +"<td>價格</td></tr>";
                          
          for(var i=0;i<books.length;i++){
                              var book
          =books[i];
                              var id
          =book.getAttribute("id");
                              booksHtml
          =booksHtml+"<tr><td>"+id+"</td>";
                              var childNodes
          =book.childNodes;
                              
          for(var j=0;j<childNodes.length;j++){
                                  var childNode
          =childNodes[j];
                                  
          if(childNode.nodeType==1){
                                      
          if(childNode.tagName=="name"){
                                          var value
          =childNode.firstChild.nodeValue;
                                          booksHtml
          =booksHtml+"<td>"+value+"</td>";
                                      }
                                      
          if(childNode.tagName=="price"){
                                          var value
          =childNode.firstChild.nodeValue;
                                          booksHtml
          =booksHtml+"<td>"+value+"</td>";
                                      }
                                  }
                              }
                              booksHtml
          =booksHtml+"</tr>";
                          }
                          booksHtml
          =booksHtml+"</table>";
                          var booksDiv
                          
          =document.getElementById("booksDiv");
                          booksDiv.innerHTML
          =booksHtml;
                      }
                  }
              }

          呵呵,也很簡單吧!學習java本來就不是難事么,只要你肯動腦子!




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


          網站導航:
           
          主站蜘蛛池模板: 利辛县| 大荔县| 昔阳县| 大方县| 涡阳县| 福泉市| 来宾市| 马边| 青冈县| 剑河县| 乌拉特后旗| 平利县| 新巴尔虎右旗| 安顺市| 丁青县| 砚山县| 沙湾县| 那曲县| 永州市| 齐河县| 沂源县| 昌邑市| 定襄县| 新和县| 芒康县| 嫩江县| 若羌县| 利川市| 太保市| 夏邑县| 昌江| 武城县| 察雅县| 晋州市| 永丰县| 南溪县| 新龙县| 西吉县| 长岛县| 莱芜市| 新野县|