坑爹的ShowModalDialog 后台传值解决方案

访客11年前 (2015-12-16)java技术6110

 今天遇到需要ShowModalDialog打开页面,通过acceptanceIds 参数值后台过滤出相应结果

前台  

var url = "loadAcceptance.action?acceptanceIds=" + id("acceptanceIds").value ;
  var returnValue = ShowModalDialog(url,1000,600);

后台:

 public String loadAcceptance() {
  
  if (StringUtils.isNotBlank(acceptanceIds)) {
   ascceptances =  expenseService.loadAscceptances(acceptanceIds, this.getBmYear());
  }

  return "ascceptances_detail";
 }


结果:

 后台显示acceptanceIds 值为null


思考后得知ShowModalDialog 无法直接将url中的参数值传递到后台如需传递到后台需先找jsp页面进行中转处理

解决方案:

前台页面:

    var url = "popub_acceptance.jsp?acceptanceIds=" + id("acceptanceIds").value ;
  var returnValue = uf_ShowModalDialog(url,1000,600);

中转jsp页面popub_acceptance.jsp

</head>
<% 
 String ls_QueryString = request.getQueryString(); 
%>
<body bgcolor="#FFFFFF" text="#000000" leftmargin=0 topmargin=0 >
  <table width="100%" border="0" height="100%">
    <tr>
      <td>
        <iframe id=iframe_list src="loadAcceptance.action?<%=ls_QueryString%>"  frameborder=0 width=100% height="100%" scrolling="auto" align=center valign=top></iframe>
      </td>
    </tr>
  </table>
</body>
</html>

后台

 public String loadAcceptance() {
  
  if (StringUtils.isNotBlank(acceptanceIds)) {
   ascceptances =  expenseService.loadAscceptances(acceptanceIds, this.getBmYear());
  }

  return "ascceptances_detail";
 }


本文原创,转载必追究版权。

分享给朋友:

相关文章

get/post方式调用http接口

get/post方式调用http接口

 1. 项目环境如下:myeclipse8.5 、tomcat5.0/weblogic、xp、JDK:开发1.5,编译1.4为了方便,在原来的web项目UpDown中新建了一个httpcal...

freeMarker 截取字符串(操作字符串函数 )

<#if c.proSummary!?length gt 25>  <!-- 如果长度 >25 截取25个字-->    ...

Java 实现用户资料完整度的前端显示(或根据填写资料自动评分)

前端使用 Bootstrap 的进度条组件显示百分比,后台读取权重并计算信息完整度,并将计算的结果返回给前端,供页面显示。CSS1<link href="static/sc/...

jquery 获取焦点

当文本框或下拉等必填时,如果没有输入就给予提示并使该文本框获得焦点!如果是js,对象.focus()即可。可是如果是jQuery, 这样$("#aa") 返回的就不是DOM对象而是...

jfinal 定时任务

1、去quartz官网下载 定时任务jar包(http://www.quartz-scheduler.org/)quartz-*.*.*.jar2、创建定时任务:public class SetAre...

如何查询端口占用情况 并禁止占用

如何查询端口占用情况 并禁止占用

开始---->运行---->cmd,或者是window+R组合键,调出命令窗口输入命令:netstat -ano可看到是:pid为 2160 的程序占用了80端口;启动任务管理器:ctrl...

评论列表

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。