将后台拼接的html串显示在弹出页面中

很多项目中都有将后台查询出来的集合拼接成html字符串,然后显示在弹出页面中,下面结合我做的项目讲一讲具体如何实现。

1、后台service层根据条件查询出结果集合,并拼成string

  1. /** 
  2.      * <p>查询目标分解情况返回表格字符串</p> 
  3.      * @param id 
  4.      * @return  
  5.      */  
  6.     public String searchDecomposeInfo(String id){  
  7.         List<GmcValueDecompose> decomposeList = seachDecomposeList(id);  
  8.         StringBuilder sb=new StringBuilder();   
  9.         if(decomposeList != null && decomposeList.size() > 0){  
  10. //           sb.append("<tr class='lc2' bgcolor='ccdef4'>");  
  11. //           sb.append("<td width='4%' align=center nowrap><font color='486d99'>序号</font></td>");  
  12. //           sb.append("<td width='8%' align=center nowrap><font color='486d99'>月份</font></td>");  
  13. //           sb.append("<td width='10%' align=center nowrap><font color='486d99'>分解值</font></td>");  
  14. //           sb.append("<td width='8%' align=center nowrap><font color='486d99'>季度</font></td>");  
  15. //           sb.append("<td width='8%' align=center nowrap><font color='486d99'>分解值</font></td>");  
  16. //           sb.append("<td width='10%' align=center nowrap><font color='486d99'>半年</font></td>");  
  17. //           sb.append("<td width='8%' align=center nowrap><font color='486d99'>分解值</font></td>");  
  18. //           sb.append("</tr>");  
  19.                
  20.              sb.append("<tr>");    
  21.              GmcValueDecompose lip = decomposeList.get(0);  
  22.              sb.append("<td>1</td>");  
  23.              sb.append("<td>"+lip.getGvdMonth()+"月</td>");  
  24.              sb.append("<td>"+lip.getGvdPlanValue()+"</td>");  
  25.              sb.append("<td>一季度</td>");  
  26.              sb.append("<td>"+lip.getGvdPlanValueQua()+"</td>");  
  27.              sb.append("<td>上半年</td>");  
  28.              sb.append("<td>"+lip.getGvdPlanValueHalf()+"</td></tr>");  
  29.                
  30.              GmcValueDecompose lip1 = decomposeList.get(1);  
  31.              sb.append("<tr>");    
  32.              sb.append("<td>2</td>");  
  33.              sb.append("<td>"+lip1.getGvdMonth()+"月</td>");  
  34.              sb.append("<td>"+lip1.getGvdPlanValue()+"</td>");  
  35.              sb.append("<td>二季度</td>");  
  36.              sb.append("<td>"+lip1.getGvdPlanValueQua()+"</td>");  
  37.              sb.append("<td>下半年</td>");  
  38.              sb.append("<td>"+lip1.getGvdPlanValueHalf()+"</td></tr>");  
  39.                
  40.              GmcValueDecompose lip2 = decomposeList.get(2);  
  41.              sb.append("<tr>");    
  42.              sb.append("<td>3</td>");  
  43.              sb.append("<td>"+lip2.getGvdMonth()+"月</td>");  
  44.              sb.append("<td>"+lip2.getGvdPlanValue()+"</td>");  
  45.              sb.append("<td>三季度</td>");  
  46.              sb.append("<td>"+lip2.getGvdPlanValueQua()+"</td>");  
  47.              sb.append("<td></td>");  
  48.              sb.append("<td></td></tr>");  
  49.                
  50.              GmcValueDecompose lip3 = decomposeList.get(3);  
  51.              sb.append("<tr>");    
  52.              sb.append("<td>4</td>");  
  53.              sb.append("<td>"+lip3.getGvdMonth()+"月</td>");  
  54.              sb.append("<td>"+lip3.getGvdPlanValue()+"</td>");  
  55.              sb.append("<td>四季度</td>");  
  56.              sb.append("<td>"+lip3.getGvdPlanValueQua()+"</td>");  
  57.              sb.append("<td></td>");  
  58.              sb.append("<td></td></tr>");  
  59.                
  60.              //---------------------------以上为前4行--------------------------  
  61.              for(int i=4; i < decomposeList.size(); i++){  
  62.                  GmcValueDecompose lip4 = decomposeList.get(i);  
  63.                  sb.append("<tr>");    
  64.                  sb.append("<td>"+(i+1)+"</td>");  
  65.                  sb.append("<td>"+lip4.getGvdMonth()+"月</td>");  
  66.                  sb.append("<td>"+lip4.getGvdPlanValue()+"</td>");  
  67.                  sb.append("<td></td>");  
  68.                  sb.append("<td></td>");  
  69.                  sb.append("<td></td>");  
  70.                  sb.append("<td></td></tr>");  
  71.              }  
  72.              return sb.toString();  
  73.         }else{  
  74.             return null;  
  75.         }         
  76.     }  


2、controller层调用该方法,并将结果集合串render到前台页面

  1. /** 
  2.      * <p>查看目标分解信息(三四级目标)</p> 
  3.      * @param id 
  4.      */  
  5.     public void showDecomposeList(String id){  
  6.         String measureFrequen1 = "";  
  7.         String decomposrList = gmcValueDecomposeService.searchDecomposeInfo(id);  
  8.         GmcGoalInformation gmcGoalInformation = gmcGoalInformationHinService.findById(id);  
  9.         if(StringUtils.isNotEmpty(gmcGoalInformation.getGgiMeasureFrequency())){  
  10.             measureFrequen1 = gmcGoalInformation.getGgiMeasureFrequency().replace("0", "年度");  
  11.             measureFrequen1 = measureFrequen1.replace("1", "半年");  
  12.             measureFrequen1 = measureFrequen1.replace("2", "季度");  
  13.             measureFrequen1 = measureFrequen1.replace("3", "月度");  
  14.         }  
  15.         //将替换过的测量频次设置到该字段中  
  16.         gmcGoalInformation.setGgiMeasureFrequency(measureFrequen1);  
  17.         View view = new View(SUCCESS);  
  18.         view.bind("decomposrList", decomposrList);  
  19.         view.bind("gmcGoalInformation", gmcGoalInformation);  
  20.         this.render(view);  
  21.     }  


3、js文件中的代码

[javascript] view plain copy
  1. //弹出无改进措施目标分解页面  
  2. function openW(id){  
  3.     var obj=window;  
  4.     window.showModalDialog('/hiniso/gmcGoalInformation/showDecomposeList/'+id,obj,"dialogWidth:700px;status:no;dialogHeight:600px;location:no;");  
  5. }  
  6.   
  7.   
  8. //导入后添加行  
  9. function addSaveNewDataEet_basemanagernorm(data){  
  10.     var po = data.split("&");  
  11.     for(var i=0;i<po.length-1;i++){  
  12.         var attr = po[i].split("@");  
  13.         var tr = $("<tr></tr>").attr("bgcolor","#FFFFFF");  
  14.         var index = attr[0].indexOf("*");         
  15.         var rowNum = attr[0].substring(0,index);    //截取序号部分  
  16.         var ggiId = attr[0].substring(index+1); //目标信息ID  
  17.           
  18.         tr.append($("<td></td>").html(rowNum)); //序号  
  19.         tr.append($("<td></td>").html(attr[1]));    //指标编码  
  20.         tr.append($("<td></td>").html(attr[2]));    //指标名称  
  21.         tr.append($("<td></td>").html(attr[3]));    //年度目标值  
  22.         tr.append($("<td></td>").html(attr[4]));    //目标释义  
  23.         tr.append($("<td></td>").html(attr[5]));    //目标计算方法  
  24.         tr.append($("<td></td>").html(attr[6]));    //统计周期  
  25.         tr.append($("<td></td>").html(attr[7]));    //责任部门  
  26.         tr.append($("<td></td>").html(attr[8]));    //判断方式  
  27.         tr.append($("<td></td>").html("<a herf='###' style='color:blue;cursor:hand' οnclick=\"javascript:openW('"+ggiId+"')\" >查看</a>"));   //分解情况查看链接  
  28.         tr.appendTo($("#eet_basemanagernorm"));                     
  29.     }  
  30. }  

 

4、jsp页面中显示出后台返回的结果字符串
  1. <table class="table">  
  2.         <caption class="ui-corner-top"><c:out value='${gmcGoalTask.ggtTaskName}'/></caption>  
  3.     </table>  
  4.     <form id="gmcGoalTaskForm" action=""  method="post">  
  5.     <table id="eet_basemanagernorm"  class="grid">  
  6.           
  7.             <tr class="lc2" bgcolor="ccdef4">  
  8.                 <td width="4%" align=center nowrap><font color="486d99">序号</font></td>            
  9.                 <td width="8%" align=center nowrap><font color="486d99">月份</font></td>  
  10.                 <td width="10%" align=center nowrap><font color="486d99">分解值</font></td>  
  11.                 <td width="8%" align=center nowrap><font color="486d99">季度</font></td>  
  12.                 <td width="8%" align=center nowrap><font color="486d99">分解值</font></td>  
  13.                 <td width="10%" align=center nowrap><font color="486d99">半年</font></td>  
  14.                 <td width="8%" align=center nowrap><font color="486d99">分解值</font></td>                       
  15.             </tr>       
  16.         <!--此处为grid内容-->  
  17.             <c:out value='${decomposrList}' escapeXml='false'/>         
  18.     </table>  


5、总结

    关键在于js中openW(id)方法中window.showModalDialog(url,obj,'')的使用,showModalDialog()方法弹出的只是一个网页对话框,而不是一个jsp页面,因此在该方法的url参数中执行controller中的showDecomposeList()方法,执行完之后转向到一个jsp页面,这样就可以在该页面上输出后台查询出来的结果字符串。否则只有网页对话框就无法把后台的数据展示出来。

6、执行效果截图

转载于:https://my.oschina.net/huewenhua/blog/681550

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值