在线求大神和版主帮助 java web 远程调用iReport问题 你又来了:)可以用 applet 啊,这里有个例子:一次 applet 客户端打印 jasperreport 报表任务笔记 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 您能帮我看看我的代码哪里出问题了么 我没法 像您的第六步一样 输入地址就下载public static void doPrint(String orderNumber,HttpServletRequest request, HttpServletResponse response) throws Exception { Map<String, Object> param=new HashMap<String, Object>(); param.put("orderNumber", orderNumber); ServletOutputStream ouputStream = response.getOutputStream(); JasperDesign jasperDesign = JRXmlLoader .load("D:\\book.jrxml"); JasperReport jasperReport = JasperCompileManager .compileReport(jasperDesign); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, param, getConn()); JasperFillManager.fillReport(jasperReport, param); JasperViewer.viewReport(jasperPrint, false); JRXlsExporter exporter = new JRXlsExporter(); ObjectOutputStream oos = new ObjectOutputStream(ouputStream); oos.writeObject(jasperPrint); oos.flush(); oos.close(); getConn().close(); }我现在应该是只需要根据您第七步的方法操作行么 请您指点下 很抱歉给您带来麻烦 我是新手比较不懂 就是我运行后 是会打开打印的页面 并且下载一个叫 iReportBook.do的 东西但是不像您说的那样 会有个下载页面类似您这句 http://localhost:9999/Test2/testServlet3 会有下载页面 我是通过 action 调用的 public class iReportAct { @RequestMapping("ireport/ireportBook.do") public String ireportBook(String orderNumber,HttpServletRequest request, HttpServletResponse response) throws Exception { iReport.doPrint(orderNumber,request,response); return "hotel/bill/billMain"; }}action 方法 会报java.lang.IllegalStateException: getOutputStream() has already been called for this response错误 你用了 struts 了?先用纯 Servlet 搞定,再转到 struts 用Struts用差别么 需要增加什么 我是新手 刚毕业出来所以不是非常了解 这个该怎么搞定 呵呵 在不搞定会被K死的 麻烦版主大人指点下 有差别。struts 对 request 对象进行了封装。建议你先用 Servlet 从功能上完成了,再搞到 struts 老样子 共享代码 对以后有需求的朋友可以参考public static void doPrint(String orderNumber, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Map<String, Object> param = new HashMap<String, Object>(); param.put("orderNumber", orderNumber); try { ServletOutputStream ouputStream = response.getOutputStream(); JasperDesign jasperDesign; jasperDesign = JRXmlLoader.load("D:\\book.jrxml"); JasperReport jasperReport = JasperCompileManager .compileReport(jasperDesign); JasperPrint jasperPrint = JasperFillManager.fillReport( jasperReport, param, getConn()); JasperFillManager.fillReport(jasperReport, param);// JasperViewer.viewReport(jasperPrint, false);// JasperPrintManager.printReport(jasperPrint, true); JasperExportManager.exportReportToPdfStream(jasperPrint, response.getOutputStream()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } try { getConn().close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }这里有2点提示下各位朋友JasperViewer.viewReport(jasperPrint, false);JasperPrintManager.printReport(jasperPrint, true);这2句被注释掉的 是在服务器上显示的 注释后不在服务器上显示如果你需要在服务器上显示那就开起来用第一次改成true 并且注释第二句的话 会不显示pdf样式 并且会变成是下载 有用的朋友可以参考下这里谢谢斑竹的指导和帮助 项目进度甘特图画法 ajax读取xml文件xmlhttp.responseXML.documentElement为空 前台查询关键字 【救命】 用eclipse过程中,突然全部代码连接数据库报错 jdk1.4编译的配置 PDFBox将WORD文档转换PDF中的疑问,有人应用过吗 创建SQL数据库记录问题!在等!!!! 怎么样取出一段字符中,特定字符串中间的字符串,ubb用阿 我有点想买这本书 JDBC编程与J2EE,这本书谁了解过,有何建议,多谢指导! 请教几个弱弱的送分问题。 项目光报HQL错误,找不到是哪写错了 类似于QQ空间好友动态的功能与数据结构设计
Map<String, Object> param=new HashMap<String, Object>();
param.put("orderNumber", orderNumber);
ServletOutputStream ouputStream = response.getOutputStream();
JasperDesign jasperDesign = JRXmlLoader
.load("D:\\book.jrxml");
JasperReport jasperReport = JasperCompileManager
.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
param, getConn());
JasperFillManager.fillReport(jasperReport, param);
JasperViewer.viewReport(jasperPrint, false);
JRXlsExporter exporter = new JRXlsExporter();
ObjectOutputStream oos = new ObjectOutputStream(ouputStream);
oos.writeObject(jasperPrint);
oos.flush();
oos.close();
getConn().close();
}
我现在应该是只需要根据您第七步的方法操作行么 请您指点下
很抱歉给您带来麻烦 我是新手比较不懂
就是我运行后 是会打开打印的页面 并且下载一个叫 iReportBook.do的 东西
但是不像您说的那样 会有个下载页面
类似您这句 http://localhost:9999/Test2/testServlet3 会有下载页面
public class iReportAct {
@RequestMapping("ireport/ireportBook.do")
public String ireportBook(String orderNumber,HttpServletRequest request, HttpServletResponse response) throws Exception {
iReport.doPrint(orderNumber,request,response);
return "hotel/bill/billMain";
}}
action 方法
java.lang.IllegalStateException: getOutputStream() has already been called for this response
错误
先用纯 Servlet 搞定,再转到 struts
所以不是非常了解 这个该怎么搞定
呵呵 在不搞定会被K死的 麻烦版主大人指点下
public static void doPrint(String orderNumber, HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Map<String, Object> param = new HashMap<String, Object>();
param.put("orderNumber", orderNumber);
try {
ServletOutputStream ouputStream = response.getOutputStream();
JasperDesign jasperDesign;
jasperDesign = JRXmlLoader.load("D:\\book.jrxml");
JasperReport jasperReport = JasperCompileManager
.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(
jasperReport, param, getConn());
JasperFillManager.fillReport(jasperReport, param);
// JasperViewer.viewReport(jasperPrint, false);
// JasperPrintManager.printReport(jasperPrint, true);
JasperExportManager.exportReportToPdfStream(jasperPrint, response.getOutputStream()); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
getConn().close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}这里有2点提示下各位朋友JasperViewer.viewReport(jasperPrint, false);
JasperPrintManager.printReport(jasperPrint, true);
这2句被注释掉的 是在服务器上显示的 注释后不在服务器上显示
如果你需要在服务器上显示那就开起来用
第一次改成true 并且注释第二句的话 会不显示pdf样式 并且会变成是下载
有用的朋友可以参考下
这里谢谢斑竹的指导和帮助