<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的時候,我們是勸導客戶只能這么做。

    現在用ajax就可以很輕松的解決這個問題了。
    我的平臺仍然是struts+spring+hibernate,但ajax打交道的主要仍是struts,至于后臺的DAO怎么寫,我就不貼了,因為比較簡單。

    我的實現方式是當鼠標移動到圖片上時,就會出現提示信息,移開,提示信息就關閉。

    效果:
    鼠標沒有移動到圖片的效果
    ts1.JPG

    鼠標移動到圖片上的效果
    ts2.JPG

    主要代碼
    jsp頁面:

    < td?width = " 15% " ?align = " center " ? >
    ????
    < a?href = " javascript:btn_AddNewBlueprintOrCommentary('<bean:write?name= " element " ?property= " id.tbBlueprintId " />'); " >< font?color = " green " > [說明書] </ font ></ a >
    ????
    < img?src = " ../images/task.gif " ?onMouseOver = " btn_getCommentary(this,'<bean:write?name= " element " ?property= " id.tbBlueprintId " />'); " ?onMouseOut = " btn_clearData(); " />
    ???
    </ td > ?

    js代碼:
    function?setData(commentaryData){
    ????btn_clearData();
    ????setOffsets();
    ????var?xmlDoc
    =commentaryData.documentElement;
    ????
    ????var?val
    =xmlDoc.getElementsByTagName('value')[0].firstChild.data;
    ????
    if(val==1){
    ????????var?ID
    =xmlDoc.getElementsByTagName('ID');
    ????????var?PLACE
    =xmlDoc.getElementsByTagName('PLACE');
    ????????var?MEMO
    =xmlDoc.getElementsByTagName('MEMO');
    ????????
    ????????
    //alert(ID[0].firstChild.data);
    ????????var?row,row2,row3;
    ????????var?iddata,placedata,memodata;
    ????????
    //alert(dataDiv.innerHTML);
    ????????for(var?i=0;i<ID.length;i++){
    ????????????iddata
    ="說明書ID:?"+ID[i].firstChild.data;
    ????????????placedata
    ="存放位置:?"+PLACE[i].firstChild.data;
    ????????????
    ????????????row
    =createRow(iddata);
    ????????????row2
    =createRow(placedata);
    ????????????
    ????????????dataTableBody.appendChild(row);
    ????????????dataTableBody.appendChild(row2);
    ????????????
    //alert(MEMO[i].firstChild.data);
    ????????????if(MEMO[i].firstChild.data!="1"){
    ????????????????memodata
    ="備注:?"+MEMO[i].firstChild.data;
    ????????????????row3
    =createRow(memodata);
    ????????????????dataTableBody.appendChild(row3);
    ????????????}

    ????????}

    ????}
    else{
    ????????iddata
    ="還沒有記錄!?";
    ????????row
    =createRow(iddata);
    ????????
    ????????dataTableBody.appendChild(row);
    ????}

    }


    var?dataDiv;
    var?dataTable;
    var?dataTableBody;
    var?offsetEl;

    function?btn_clearData()
    {
    ????var?ind
    =dataTableBody.childNodes.length;
    ????
    for(var?i=ind-1;i>=0;i--){
    ????????dataTableBody.removeChild(dataTableBody.childNodes[i]);
    ????}

    ????dataDiv.style.border
    ="none";
    }


    function?setOffsets()
    {
    ????var?end
    =offsetEl.offsetWidth;
    ????var?top
    =calculateOffsetTop(offsetEl);
    ????dataDiv.style.border
    ="black?1px?solid";
    ????dataDiv.style.left
    =end+370+"px";
    ????dataDiv.style.top
    =top+"px";
    ????
    //alert(dataDiv.innerHTML);
    }


    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?createRow(data)
    {
    ????var?row,cell,txtNode;
    ????row
    =document.createElement("tr");
    ????cell
    =document.createElement("td");
    ????
    ????cell.setAttribute(
    "bgcolor","#FFFAFA");
    ????cell.setAttribute(
    "border",0);
    ????
    ????txtNode
    =document.createTextNode(data);
    ????cell.appendChild(txtNode);
    ????row.appendChild(cell);
    ????
    ????
    return?row;
    }

    ?

    action代碼:

    ?

    /**?
    ?????*?獲得所有說明書
    ?????
    */

    ????
    public?ActionForward?doGetCommentary(
    ????????????ActionMapping?mapping,
    ????????????ActionForm?form,
    ????????????HttpServletRequest?req,
    ????????????HttpServletResponse?res)
    {
    ????????String?blueprintID
    =(String)req.getParameter("blueprintID");
    ????????String?folderID
    =(String)req.getParameter("folderID");
    ????????String?fileboxID
    =(String)req.getParameter("fileboxID");
    ????????res.setContentType(
    "text/xml;charset=GB2312");
    ????????res.setHeader(
    "Cache-Control","no-cache");
    ????????String?xml
    ="<?xml?version=\"1.0\"?encoding=\"GB2312\"?>";
    ????????xml
    +="<response>";
    ????????logger.info(
    "CommentaryAction_doGetCommentary_藍圖ID和文檔ID和文檔盒ID:?"+blueprintID+";"+folderID+";"+fileboxID);
    ????????List?commlist
    =commentaryService.getAllCommentary(blueprintID,folderID,fileboxID);
    ????????
    int?i=commlist.size();
    ????????
    if(i==0){
    ????????????xml
    +="<value>0</value>";
    ????????????xml
    +="</response>";
    ????????}
    else{
    ????????????Iterator?it
    =commlist.iterator();
    ????????????
    while(it.hasNext()){
    ????????????????TbExponent?te
    =(TbExponent)it.next();
    ????????????????xml
    +="<ID>"+te.getId().getTbExponentFileId()+"</ID>";
    ????????????????xml
    +="<PLACE>"+te.getTbExponentPlace()+"</PLACE>";
    ????????????????
    if(!te.getTbExponentMemo().equals(""))
    ????????????????????xml
    +="<MEMO>"+te.getTbExponentMemo()+"</MEMO>";
    ????????????????
    else
    ????????????????????xml
    +="<MEMO>"+1+"</MEMO>";
    ????????????????
    //logger.info("CommentaryAction_doGetCommentary:"+xml);
    ????????????}

    ????????????xml
    +="<value>1</value>";
    ????????????xml
    +="</response>";
    ????????????logger.info(
    "CommentaryAction_doGetCommentary:"+xml);
    ????????}

    ????????
    ????????
    try?{
    ????????????res.getWriter().write(xml);
    ????????}
    ?catch?(IOException?e)?{
    ????????????????????????e.printStackTrace();
    ????????}

    ????????
    return?null;
    ????}

    ?

    關鍵的代碼已經貼出,希望對大伙有用。

    參考書籍:《ajax基礎教程》

    posted on 2006-08-04 09:35 千山鳥飛絕 閱讀(1813) 評論(0)  編輯  收藏 所屬分類: Ajax
    正在閱讀:



    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(35)

    隨筆檔案

    文章分類

    文章檔案

    好友的blog

    我的其他blog

    老婆的Blog

    搜索

    •  

    積分與排名

    • 積分 - 776413
    • 排名 - 56

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产成人精品久久| 免费无码作爱视频| 最近免费中文字幕4| 亚洲精品资源在线| 全免费毛片在线播放| 亚洲欧洲日本精品| 日韩精品久久久久久免费| 亚洲日韩精品无码一区二区三区 | 女人18毛片特级一级免费视频| 亚洲欧洲日韩国产| 成人毛片18女人毛片免费| 亚洲AV网一区二区三区 | 亚洲午夜久久久久久噜噜噜| 亚美影视免费在线观看| 亚洲女久久久噜噜噜熟女| 鲁丝片一区二区三区免费| 最近的免费中文字幕视频| 亚洲aⅴ无码专区在线观看春色| 久久午夜羞羞影院免费观看| 亚洲精品中文字幕无码AV| 成人网站免费观看| 特级毛片全部免费播放| 亚洲一区二区久久| 毛片免费观看的视频| 特级毛片免费观看视频| 亚洲成Av人片乱码色午夜| 精品久久久久成人码免费动漫| 亚洲精品无码国产片| 国产亚洲午夜高清国产拍精品 | 亚洲AV成人影视在线观看 | 国产青草视频在线观看免费影院| 国产亚洲精品一品区99热| 18禁止看的免费污网站| 亚洲中文无码mv| 久久久久亚洲AV无码专区桃色| 污污网站免费观看| 国产精品亚洲а∨无码播放麻豆 | 亚洲视频中文字幕在线| 国产精品免费_区二区三区观看| 一级做α爱过程免费视频| 亚洲另类春色国产精品|