当前位置: 代码迷 >> J2EE >> 【急】一个弹出新页面获取action中传递过来的值的有关问题
  详细解决方案

【急】一个弹出新页面获取action中传递过来的值的有关问题

热度:10   发布时间:2016-04-22 01:29:52.0
【急急急】一个弹出新页面获取action中传递过来的值的问题,在线等
项目用的是ssh框架,这是一个表报统计模块
问题分两部分:
【1】.父页面提交查询条件(月份),然后传递给action查询相关数据,然后打开一个新的页面(需求要求必须要新打开一个页面),新打开的页面接收action中传递回来的值并展示出来,请问怎么实现?我是这样做的,在父页面里面把查询条件传递给要展示数据的子页面,然后子页面加载的时候把查询条件传递给action,子页面用window.open打开,sturts2的配置文件里的页面跳转就是跳转到这个子页面来的,可是这样有个问题,在FireBug下的html中能看得数据,但是在window.open打开的页面中却没有数据;
PS:对话框考虑过,不过那个不符合需求。
【2】.数据的展示如图,图片里的项目名称,事由1到7,以及子项目名称和数据都是动态生成的,这样的表格如何动态生成?主要的问题是迭代的时候项目名称只需要迭代一次,而其他的需要迭代很多次,这样的表格怎么生成?

跪求高手赐教,非常感谢

------解决方案--------------------
探讨
项目用的是ssh框架,这是一个表报统计模块
问题分两部分:
【1】.父页面提交查询条件(月份),然后传递给action查询相关数据,然后打开一个新的页面(需求要求必须要新打开一个页面),新打开的页面接收action中传递回来的值并展示出来,请问怎么实现?我是这样做的,在父页面里面把查询条件传递给要展示数据的子页面,然后子页面加载的时候把查询条件传递给action,子页面用window.open……

------解决方案--------------------
1: 我觉得 这个 应该 异步去获取数据 而不走STRUTS2的流程
2: 这个。。。

顺便说一下 你这个需求 设计 不如 直接查询后 弹出个EXCEL展示
------解决方案--------------------
探讨

现在的问题是我在FireBug中的HTML页面能看到数据显示在页面上,但是在window.open打开的那个实际的页面上看不到;交叉报表我会去看下的,非常感谢

------解决方案--------------------
redirect方式的话得用session了。
正常的话,forward方式下,request在window.open下的页面应该好用。

然后子页面加载的时候把查询条件传递给action,子页面用window.open打开??
LZ 上面这句话的代码能否帖下?
------解决方案--------------------
lz这要说那是提交月份后的数据没有返回到前台页面上来吗、?这要你要看看你跳转的方式是那种?

2个问题那个格式是excel还是页面形式的?如果是excel的那在后台代码迭代的时候就要控制合并表格了;若是以页面形式展示的话,在页面迭代的时候会有个cont属性记录迭代次数的,如何把那一<td>标签跨cont行就行了
------解决方案--------------------
1. 我觉得很简单,你用window.open打开的不就是父子页面吗?去古哥一下我记得有window.parent可以获取到父页面的方法,参数,并且可以调用父页面的方法执行,父页面也可以控制子页面的方法执行,这个古哥一下就可以找到了。
2. 动态生成表格的问题,其实也挺简单的,你说的项目名称只要生成一次。代码你改改,动态生成应该没啥问题的,以前我做动态生成考核表比你这个更复杂都可以做出来。
JScript code
<html><head><script>function generatorTable(rows){    /*var ss=[{"项目名称","子项目1","数据","数据","数据","数据","数据","数据","数据"},            {"项目名称","子项目1","数据","数据","数据","数据","数据","数据","数据"},            {"项目名称","子项目1","数据","数据","数据","数据","数据","数据","数据"},            {"项目名称","子项目1","数据","数据","数据","数据","数据","数据","数据"},            {"项目名称","子项目1","数据","数据","数据","数据","数据","数据","数据"},            {"项目名称","子项目1","数据","数据","数据","数据","数据","数据","数据"},            {"项目名称","子项目1","数据","数据","数据","数据","数据","数据","数据"},            {"项目名称","子项目1","数据","数据","数据","数据","数据","数据","数据"}];*/    var ss=["项目名称","子项目1","数据","数据","数据","数据","数据","数据","数据"];    var tabs='<table id="tb1" border="1">';    var trs='';    for(var i=0;i<rows;i++){                var tr='';        tr+='<tr>';        for(var j=0;j<ss.length;j++){            if(i==0 && j==0){                tr+='<td rowspan="'+rows+'">'+ss[j]+'</td>'            }else{                if(j!=0)                tr+='<td>'+ss[j]+'</td>';            }        }        alert(tr);        trs+=tr;    }    tabs+=getHead();    tabs+=trs;    tabs+='</table>';    alert(tabs);    var div1=document.getElementById('div1');    if(div1){        div1.innerHTML=tabs;    }}function getHead(){    //这里可以动态生成看你要生成的效果    var str='';    str+='<tr>';    str+=' <th rowspan="2">项目</th>';    str+=' <th rowspan="2">子项目</th>';    str+=' <th colspan="7">事由</th>';    str+='</tr>';    str+='<tr>';    str+=' <th>事由1</th>';    str+=' <th>事由2</th>';    str+=' <th>事由3</th>';    str+=' <th>事由4</th>';    str+=' <th>事由5</th>';    str+=' <th>事由6</th>';    str+=' <th>事由7</th>';    str+='</tr>';    return str;}</script></head><body>    <div id="div1">    </div>    <input type="button" value="click" onclick="generatorTable(10);" /></body></html>
  相关解决方案