<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 千山鳥飛絕 閱讀(1804) 評論(0)  編輯  收藏 所屬分類: Ajax
    正在閱讀:



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

    常用鏈接

    留言簿(35)

    隨筆檔案

    文章分類

    文章檔案

    好友的blog

    我的其他blog

    老婆的Blog

    搜索

    •  

    積分與排名

    • 積分 - 775168
    • 排名 - 56

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 四虎永久在线精品免费网址| 美女巨胸喷奶水视频www免费| 免费无码又爽又刺激网站直播 | 无码人妻AV免费一区二区三区 | 亚洲国产精品一区二区第一页 | 亚洲bt加勒比一区二区| 深夜福利在线免费观看| 全部免费毛片在线| MM1313亚洲国产精品| 最好免费观看韩国+日本| 中文字幕亚洲综合久久综合| 69天堂人成无码麻豆免费视频| 亚洲综合久久成人69| 香蕉97超级碰碰碰免费公| 在线观看亚洲AV每日更新无码| 成人无遮挡毛片免费看| 小说专区亚洲春色校园| 亚洲日韩中文在线精品第一| rh男男车车的车车免费网站| 亚洲精品夜夜夜妓女网| 1区2区3区产品乱码免费| 91嫩草亚洲精品| 四色在线精品免费观看| 国产亚洲综合视频| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 无码av免费一区二区三区试看| 国产成人无码综合亚洲日韩| 污污网站免费观看| 亚洲高清中文字幕免费| 暖暖日本免费在线视频| 国产黄色免费观看| 亚洲一级二级三级不卡| 野花高清在线观看免费完整版中文 | 九九视频高清视频免费观看| 亚洲国产精品无码专区影院| 精品免费久久久久久久| 亚洲6080yy久久无码产自国产| 亚洲男女内射在线播放| 日本免费久久久久久久网站| 久久精品国产亚洲av麻豆蜜芽 | 免费毛片在线看不用播放器|