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

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

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

    posts - 431,  comments - 344,  trackbacks - 0

    HTML源代碼
    <%@ page language="Java" contentType="text/html; charset=UTF-8"%>
    <html>
      <head>
        <title>article.html</title>
      <script type="text/javascript" src="js/common.js"></script>
      <script type="text/javascript">
      var completeDiv;
      var inputField;
      var nameTable;
      var nameTableBody;
      function initVars() {
         inputField = document.getElementById("title");           
         nameTable = document.getElementById("name_table");
         completeDiv = document.getElementById("popup");
         nameTableBody = document.getElementById("name_table_body");
        
      }
     
      function findNames(){
       initVars();
       if (inputField.value.length > 0) {
           createXMLHttpRequest(); 
           var url = "article.do?method=search&title="+encodeURI(inputField.value);  
           xmlHttp.open("GET", url, true);
           xmlHttp.onreadystatechange = callback;
           xmlHttp.send(null);
        } else {
           clearNames();
        }
      }
      function callback() {
                if (xmlHttp.readyState == 4) {
                    if (xmlHttp.status == 200) {
                   
                        var name = xmlHttp.responseXML.getElementsByTagName("title")[0].firstChild.data;
                        setNames(xmlHttp.responseXML.getElementsByTagName("title"));
                    } else if (xmlHttp.status == 204){
                        clearNames();
                      
                    }
                }
            }
           
            function setNames(the_names) {           
                clearNames();
                var size = the_names.length;
                setOffsets();

                var row, cell, txtNode;
                for (var i = 0; i < size; i++) {
                    var nextNode = the_names[i].firstChild.data;
                    row = document.createElement("tr");
                    cell = document.createElement("td");
                   
                    cell.onmouseout = function() {this.className='mouseOver';};
                    cell.onmouseover = function() {this.className='mouseOut';};
                    cell.setAttribute("bgcolor", "#FFFAFA");
                    cell.setAttribute("border", "0");
                    cell.onclick = function() { populateName(this); } ;                            

                    txtNode = document.createTextNode(nextNode);
                    cell.appendChild(txtNode);
                    row.appendChild(cell);
                    nameTableBody.appendChild(row);
                   
                }
            }

            function setOffsets() {
                var end = inputField.offsetWidth;
                var left = calculateOffsetLeft(inputField);
                var top = calculateOffsetTop(inputField) + inputField.offsetHeight;

                completeDiv.style.border = "black 1px solid";
                completeDiv.style.left = left + "px";
                completeDiv.style.top = top + "px";
                nameTable.style.width = end + "px";
            }
           
            function calculateOffsetLeft(field) {
              return calculateOffset(field, "offsetLeft");
            }

            function calculateOffsetTop(field) {
              return calculateOffset(field, "offsetTop");
            }

            function calculateOffset(field, attr) {
              var offset = 0;
              while(field) {
                offset += field[attr];
                field = field.offsetParent;
              }
              return offset;
            }

            function populateName(cell) {
                inputField.value = cell.firstChild.nodeValue;
                clearNames();
            }
      function clearNames() {
         var ind = nameTableBody.childNodes.length;
         for (var i = ind - 1; i >= 0 ; i--) {
           nameTableBody.removeChild(nameTableBody.childNodes[i]);
         }
        completeDiv.style.border = "none";
      }
      </script>
      </head>
     
      <body>
        <h3>Ajax Auto Complete Example</h3>
        請輸入名稱:<input type="text" name="title" id="title" size="30" width="100" height="20" onkeyup="findNames();">
        <div style="position:absolute;" id="popup">
            <table id="name_table" bgcolor="#FFFAFA" border="0" cellspacing="0" cellpadding="0"/>           
                <tbody id="name_table_body"></tbody>
            </table>
        </div>
      </body>
    </html>


    Action源代碼
    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     */
    package com.rain.struts.action;

    import Java.io.IOException;
    import Java.io.PrintWriter;
    import Java.io.UnsupportedEncodingException;
    import Java.util.Iterator;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.actions.DispatchAction;
    import org.apache.struts.validator.DynaValidatorForm;

    import com.rain.bean.ArticleDao;

    /**
     * MyEclipse Struts
     * Creation date: 09-12-2006
     *
     * XDoclet definition:
     * @struts.action parameter="method"
     */
    public class ArticleAction extends DispatchAction {
     /*
      * Generated Methods
      */

     /**
      * Method execute
      * @param mapping
      * @param form
      * @param request
      * @param response
      * @return ActionForward
      */
     public ActionForward search(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response) {
      DynaValidatorForm articleForm = (DynaValidatorForm)form;
      String title;
      try {
       title = new String(request.getParameter("title").getBytes("ISO8859_1"),"UTF-8");
       System.out.println(title);
       ArticleDao dao=new ArticleDao();
       
       Iterator it=dao.findAllName(title).iterator();
       
       if(it.hasNext()){
        PrintWriter out;
        try {
         
         response.setContentType("text/xml;charset=UTF-8");
         response.setHeader("Cache-Control", "no-cache");
         out = response.getWriter();
         out.println("<response>");
         while(it.hasNext()){
          String name=it.next().toString();
          out.println("<title>"+name+"</title>");
         }
         out.println("</response>");
         it=null;
         out.close();
        } catch (IOException e) {
         // TODO 自動生成 catch 塊
         e.printStackTrace();
        }
        
       }else{
        response.setStatus(HttpServletResponse.SC_NO_CONTENT);
       }
      } catch (UnsupportedEncodingException e1) {
       // TODO 自動生成 catch 塊
       e1.printStackTrace();
      }
      
      
      return null;
     }
    }



    Dao源代碼
    /**
     *@type_name: ArticleDao
     *@date: 2006-9-13
     *@author scott_zhou
     */
    package com.rain.bean;

    import Java.util.List;

    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;

    import com.rain.HibernateSessionFactory;

    /**
     *
     */
    public class ArticleDao {

     public List findAllName(String title){
      System.out.println("11");
      String hql="select art.title from Article art where art.title like '"+title+"%'";
         List list=null;
         try{
         
          Session session=HibernateSessionFactory.getCurrentSession();

             Transaction tx=session.beginTransaction();
              Query query=session.createQuery(hql);
               
                list=query.list();
                tx.commit();
                session.close();
         }catch(Exception e){
          System.out.println(e.getMessage());
          e.printStackTrace();
         }
           
            return list;
     }
    }

    posted on 2006-09-13 09:19 周銳 閱讀(919) 評論(7)  編輯  收藏 所屬分類: AjaxHibernateStruts
    主站蜘蛛池模板: 亚洲avav天堂av在线不卡| 中文字幕无码一区二区免费| 亚洲AV综合色区无码一区爱AV| 卡一卡二卡三在线入口免费| 永久免费不卡在线观看黄网站| 亚洲av成人一区二区三区观看在线| 亚洲国产成人私人影院| 亚洲欧洲中文日韩av乱码| 成熟女人牲交片免费观看视频| 大地影院MV在线观看视频免费| 老司机福利在线免费观看| 亚洲精品国产精品国自产网站 | 亚洲一区二区三区影院 | 狠狠入ady亚洲精品| 亚洲一区二区三区高清视频| 久久国产精品亚洲综合 | 亚洲夂夂婷婷色拍WW47| 亚洲国产精品不卡在线电影| 久久黄色免费网站| 亚洲av永久无码精品三区在线4 | 亚洲国产精品综合久久2007| 亚洲精品美女久久777777| 亚洲人成无码网WWW| 国产精品免费看久久久无码| 99re热免费精品视频观看 | 亚洲AV日韩AV鸥美在线观看| 77777亚洲午夜久久多人| 国产在线a不卡免费视频| 卡1卡2卡3卡4卡5免费视频| 青青青国产在线观看免费网站| 久久精品人成免费| 污污网站免费观看| 午夜免费福利小电影| 日本高清免费观看| 久久久免费精品re6| 午夜视频在线免费观看| 欧洲精品99毛片免费高清观看 | 久久九九亚洲精品| 亚洲av无码乱码国产精品fc2| 精品国产综合成人亚洲区| 亚洲乱码日产一区三区|