JAVA涂鴉
          關(guān)于JAVA的點(diǎn)點(diǎn)滴滴
          posts - 50,  comments - 689,  trackbacks - 0

          ajax確實(shí)是個(gè)很好的技術(shù),在提高客戶的體驗(yàn)度上面能做很多以前不能做或者不好做的事情。出現(xiàn)提示頁面就是一個(gè)很好的示例。需要制作提示頁面的地方其實(shí)很多,但以前大多是要求用戶點(diǎn)擊相關(guān)信息進(jìn)入詳細(xì)信息頁面察看,然后返回,再點(diǎn)擊其他的信息察看詳細(xì)信息頁面。這樣就降低了客戶的體驗(yàn)度,在沒有ajax的時(shí)候,我們是勸導(dǎo)客戶只能這么做。

          現(xiàn)在用ajax就可以很輕松的解決這個(gè)問題了。
          我的平臺仍然是struts+spring+hibernate,但ajax打交道的主要仍是struts,至于后臺的DAO怎么寫,我就不貼了,因?yàn)楸容^簡單。

          我的實(shí)現(xiàn)方式是當(dāng)鼠標(biāo)移動到圖片上時(shí),就會出現(xiàn)提示信息,移開,提示信息就關(guān)閉。

          效果:
          鼠標(biāo)沒有移動到圖片的效果
          ts1.JPG

          鼠標(biāo)移動到圖片上的效果
          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_藍(lán)圖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;
          ????}

          ?

          關(guān)鍵的代碼已經(jīng)貼出,希望對大伙有用。

          參考書籍:《ajax基礎(chǔ)教程》

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



          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(35)

          隨筆檔案

          文章分類

          文章檔案

          好友的blog

          我的其他blog

          老婆的Blog

          搜索

          •  

          積分與排名

          • 積分 - 776089
          • 排名 - 56

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大渡口区| 吉隆县| 天镇县| 遵义市| 临朐县| 博湖县| 巴南区| 利津县| 大同县| 缙云县| 始兴县| 崇左市| 乌什县| 井冈山市| 桃江县| 洪雅县| 错那县| 柳州市| 宜章县| 讷河市| 林甸县| 安图县| 吴忠市| 安宁市| 丰城市| 区。| 惠州市| 阿荣旗| 中江县| 汝阳县| 射阳县| 新津县| 如东县| 沅江市| 东丽区| 鸡西市| 湛江市| 黑水县| 得荣县| 阆中市| 仁布县|