去浏览器“工具”里的 “Internet 选项”里的“安全”里,把“Internet”和本地“Intranet连接”的安全级别降低试试看。
产生原因:在生成HTML页面时JRHtmlExporterParameter.IMAGES_URI参数设置不正确,主要是图片的路径问题。由JasperReport生成Html时,那些红叉叉是一个名称为px像素的图片,是内置在jasperreports包中的,在IE显示时以图片的形式显示解决办法:根据JasperReport的源代码显示,我们只需要以下两个步骤就能解决了
1、在web.xml中添加如下配置:
<servlet> <servlet-name>ImageServlet</servlet-name> <servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ImageServlet</servlet-name> <url-pattern>/servlets/image</url-pattern> </servlet-mapping>
2、在调用程序中增加如下代码:
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image=")
好了,经过上面两个步骤。重启服务,刷新页面立马就正常了
完整代码:
/** * 导出html */ private static void exportHtml(JasperPrint jasperPrint,String defaultFilename,HttpServletRequest request, HttpServletResponse response) throws IOException, JRException {response.setContentType("text/htmlcharset=UTF-8") JRHtmlExporter exporter = new JRHtmlExporter() PrintWriter out = response.getWriter() try { request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint) exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint) exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out) exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE) exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8") exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.FALSE) exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image=") exporter.exportReport() } catch (JRException e) {logger.debug(" 生成html文件失败 .... ....") }}
上面的代码就能很完美的生成html了,页面没有红叉叉,chat图也能正常显示了
可能是出现卡纸现象,可以通过下面方法解决:
1、从进纸器中取出任何剩余纸张,打开进纸器盖。
2、轻轻地从进纸器中取出卡纸。
3、关闭进纸器盖,将取出的纸张重新装入进纸器。
4、打开扫描仪盖,抓住误送的纸,双手小心地向右拉,将其从送纸区域中取出。
5、合上扫描仪盖,将取出的纸张重新装入进纸器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)