当前位置:   article > 正文

怎样将后台拼接的html串显示在弹出页面中_把接口返回的html插到弹窗里

把接口返回的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. sb.append("<tr>");
  20. GmcValueDecompose lip = decomposeList.get(0);
  21. sb.append("<td>1</td>");
  22. sb.append("<td>"+lip.getGvdMonth()+"月</td>");
  23. sb.append("<td>"+lip.getGvdPlanValue()+"</td>");
  24. sb.append("<td>一季度</td>");
  25. sb.append("<td>"+lip.getGvdPlanValueQua()+"</td>");
  26. sb.append("<td>上半年</td>");
  27. sb.append("<td>"+lip.getGvdPlanValueHalf()+"</td></tr>");
  28. GmcValueDecompose lip1 = decomposeList.get(1);
  29. sb.append("<tr>");
  30. sb.append("<td>2</td>");
  31. sb.append("<td>"+lip1.getGvdMonth()+"月</td>");
  32. sb.append("<td>"+lip1.getGvdPlanValue()+"</td>");
  33. sb.append("<td>二季度</td>");
  34. sb.append("<td>"+lip1.getGvdPlanValueQua()+"</td>");
  35. sb.append("<td>下半年</td>");
  36. sb.append("<td>"+lip1.getGvdPlanValueHalf()+"</td></tr>");
  37. GmcValueDecompose lip2 = decomposeList.get(2);
  38. sb.append("<tr>");
  39. sb.append("<td>3</td>");
  40. sb.append("<td>"+lip2.getGvdMonth()+"月</td>");
  41. sb.append("<td>"+lip2.getGvdPlanValue()+"</td>");
  42. sb.append("<td>三季度</td>");
  43. sb.append("<td>"+lip2.getGvdPlanValueQua()+"</td>");
  44. sb.append("<td></td>");
  45. sb.append("<td></td></tr>");
  46. GmcValueDecompose lip3 = decomposeList.get(3);
  47. sb.append("<tr>");
  48. sb.append("<td>4</td>");
  49. sb.append("<td>"+lip3.getGvdMonth()+"月</td>");
  50. sb.append("<td>"+lip3.getGvdPlanValue()+"</td>");
  51. sb.append("<td>四季度</td>");
  52. sb.append("<td>"+lip3.getGvdPlanValueQua()+"</td>");
  53. sb.append("<td></td>");
  54. sb.append("<td></td></tr>");
  55. //---------------------------以上为前4行--------------------------
  56. for(int i=4; i < decomposeList.size(); i++){
  57. GmcValueDecompose lip4 = decomposeList.get(i);
  58. sb.append("<tr>");
  59. sb.append("<td>"+(i+1)+"</td>");
  60. sb.append("<td>"+lip4.getGvdMonth()+"月</td>");
  61. sb.append("<td>"+lip4.getGvdPlanValue()+"</td>");
  62. sb.append("<td></td>");
  63. sb.append("<td></td>");
  64. sb.append("<td></td>");
  65. sb.append("<td></td></tr>");
  66. }
  67. return sb.toString();
  68. }else{
  69. return null;
  70. }
  71. }


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文件中的代码

  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. function addSaveNewDataEet_basemanagernorm(data){
  8. var po = data.split("&");
  9. for(var i=0;i<po.length-1;i++){
  10. var attr = po[i].split("@");
  11. var tr = $("<tr></tr>").attr("bgcolor","#FFFFFF");
  12. var index = attr[0].indexOf("*");
  13. var rowNum = attr[0].substring(0,index); //截取序号部分
  14. var ggiId = attr[0].substring(index+1); //目标信息ID
  15. tr.append($("<td></td>").html(rowNum)); //序号
  16. tr.append($("<td></td>").html(attr[1])); //指标编码
  17. tr.append($("<td></td>").html(attr[2])); //指标名称
  18. tr.append($("<td></td>").html(attr[3])); //年度目标值
  19. tr.append($("<td></td>").html(attr[4])); //目标释义
  20. tr.append($("<td></td>").html(attr[5])); //目标计算方法
  21. tr.append($("<td></td>").html(attr[6])); //统计周期
  22. tr.append($("<td></td>").html(attr[7])); //责任部门
  23. tr.append($("<td></td>").html(attr[8])); //判断方式
  24. tr.append($("<td></td>").html("<a herf='###' style='color:blue;cursor:hand' οnclick=\"javascript:openW('"+ggiId+"')\" >查看</a>")); //分解情况查看链接
  25. tr.appendTo($("#eet_basemanagernorm"));
  26. }
  27. }

 

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. <tr class="lc2" bgcolor="ccdef4">
  7. <td width="4%" align=center nowrap><font color="486d99">序号</font></td>
  8. <td width="8%" align=center nowrap><font color="486d99">月份</font></td>
  9. <td width="10%" align=center nowrap><font color="486d99">分解值</font></td>
  10. <td width="8%" align=center nowrap><font color="486d99">季度</font></td>
  11. <td width="8%" align=center nowrap><font color="486d99">分解值</font></td>
  12. <td width="10%" align=center nowrap><font color="486d99">半年</font></td>
  13. <td width="8%" align=center nowrap><font color="486d99">分解值</font></td>
  14. </tr>
  15. <!--此处为grid内容-->
  16. <c:out value='${decomposrList}' escapeXml='false'/>
  17. </table>


5、总结

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

6、执行效果截图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/93039
推荐阅读
相关标签
  

闽ICP备14008679号