ireport+struts2集成开发总结一: 解决HTML图片背景不能显示的问题
来源:互联网 发布:大学生网络情感障碍 编辑:程序博客网 时间:2024/05/22 09:47
最近进行了一系列报表的开发,有HTML、报表、条形码标签打印等等,在开发过程中遇到了一些问题,现在我把这些问题总结下来分享给大家。
HTML图片背景不显示这个问题,网上有很多解决方法。有的是改JAR文件源码、有的则是自己建立一个IMAGE文件夹。 可我觉得,以上方法代价太大,特别是自己增加IMAGE文件夹并放入PX.GIF文件的方法,如果以后开发带图表的报表,IMAGE文件夹里怎么增加图片?所以显然是不可取的。 由于笔者所做项目代码比较繁杂,也没有统一对Action请求加入.action或.do后缀,依靠过滤器来达到目地的解决方案对楼主也是不可取的。
怎么解决这个问题呢? 我们先从原理上分析: 从struts2报的错上可以看出, Struts2是把背景图片PX当做ACTION了。知道这个原理,一般来说能想到3种解决方案:方案一.从struts2的拦截器上下功夫,不再拦截一切, 如web.xml中的 /.*配置。 方案 二.既然struts2把PX图片当成请求,我们就逆向思维, 在生成HTML时,设置export属性禁用图片,这样就不会冲突了。 属性设置关键代码为:
JRHtmlExporter exporter = new JRHtmlExporter();exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
方案三:也是我最推崇并使用的方案。 建立一个空ACTION, 做为PX请求的中转, 最后再返回图片地址。 这样做充分利用了JAR的源码,我们只是针对冲突做了个简单的中转而已。代码如下:
在sturts2.xml文件中加入以下代码:
<package name="servlets" extends="struts-default" namespace="/servlets"> <action name="image" class="com.main.action.ServletTempAction" method="jasperreportImg"> <result>/servlets/image</result> </action></package><result name="printBillByIreport" type="jasper"><param name="location">/jasperTemplate/billFormatStyleFive.jasper</param><param name="dataSource">printDataList</param><param name="format">HTML</param><param name="imageServletUrl"><![CDATA[/servlets/image?image=]]></param><param name="documentHeader">bill_no2</param></result>
增加临时中转action,代码如下:
public class ServletTempAction extends ActionSupport{/** * */private static final long serialVersionUID = 6218836747053969789L;/** * jasperreport中的图片servlet * @return */public String jasperreportImg(){return SUCCESS;}}
在web.xml中加入image的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>
如此设置后,就会发现HTML背景图片不显示问题彻底解决了。 希望对大家有用
- ireport+struts2集成开发总结一: 解决HTML图片背景不能显示的问题
- spring mvc整合ireport终极解结方案,解决HTML图片不显示的问题
- spring mvc整合ireport终极解结方案,解决HTML图片不显示的问题
- ireport+jasperreports报表开发总结一(Struts2)
- 解决图片不能显示的问题
- Struts2 与 ireport 集成问题
- ireport+struts2集成开发总结二:一些需要注意的小细节
- 【菜鸟学安卓】- TextView 显示Html 一 解决图片显示不了的小问题
- 关于iReport制作报表在程序中导出html时的图片显示问题
- 解决d.setToolTipText() 显示文本不能显示图片的问题
- 解决IE 7.0不能显示PNG图片的问题
- Tomcat 解决中文路径的图片不能显示问题
- Tomcat 解决中文路径的图片不能显示问题
- 解决IE6不能正常使用显示透明背景的.png图片(集)
- IReport与JasperReport生成HTML报表的线条图片问题
- IReport与JasperReport生成HTML报表的线条图片问题
- IReport与JasperReport生成HTML报表的线条图片问题
- ireport html图片显示不出来
- BASH命令和SHELL脚本总结(3)命令篇
- java synchronized详解
- C ++为什么经常将析构函数声明为虚函数?
- (一) 序列化概述
- 2012年的十一长假怎么过
- ireport+struts2集成开发总结一: 解决HTML图片背景不能显示的问题
- sleep()和yield()方法
- 快速排序及优化
- JNI学习笔记
- Spring+javamail+velocity发送邮件
- 微软面试题目意义深远:制度建设问题
- 什么情况下 msgsnd消息队列 和msgrcv的结果不同呢?
- 黑马程序员 面向对象(一)
- 读取未安装apk信息