站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题struts中Action的execute方法中怎样向浏览器发送另一个新窗口。

struts中Action的execute方法中怎样向浏览器发送另一个新窗口。

摘要: struts中Action的execute方法中怎样向浏览器发送另一个新窗口。


我的execute中有一段代码:
...
Map parameters = new HashMap();
InputStream in = getClass().getResourceAsStream("/reports/create.jasper");
ServletOutputStream ServletOutputStream out=response.getOutputStream();
JasperRunManager.runReportToPdfStream(in,out,parameters, rds);
...
//return (mapping.findForward("success"));不能使用,只能返回null。
return null;

rds实现了Jasper的数据接口JRDataSource。

这里使用了JasperReport组件生成pdf文件,发送到客户端。发送后,IE显示嵌入的pdf文件。但是IE的Back按钮无效。无法回退到上一页进行其他操作,只能关闭IE。我想怎样才能在点“提交”后,自动打开另一个IE,显示PDF,本IE窗口可以使用return (mapping.findForward("success"));返回。




在发送请求前,open一个窗口,open窗口的url设置为action的url


ypekk() :
能说具体点吗?我对struts一知半解。


ypekk()所说open一个窗口应该是绑定到网页“提交”上面吗?怎么设置。


waiting...........


mapping.findForward("success"));这个就是新的窗口,为什么注掉了?


JasperRunManager.runReportToPdfStream(in,out,parameters, rds);将PDF通过response发送到客户端,mapping.findForward("success"))通不过,只能return null;


我知道你代码的意思,这么说吧,在你的代码里pdf是新的窗口了,为什么还要新窗口?你指的新窗口是什么意思?


可以像二楼说的一样,因为通过forward已经不能转到新的窗口了,open一个你要的jsp页面,如success


pdf不在新窗口,就在struts的action当前窗口,我现在没法再产生一个新窗口。


能说具体点,给点代码吧?


我觉得是不是要在JSP中加类似这样的东西?
提交
Javascript怎么写?
具体在服务器端怎么处理?


↑返回目录
前一篇: jsp参数强制转换怎么写?
后一篇: 怎么定时刷新页面数据?