var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-20738293-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script')"/>
jutleo
欢迎走进有风的地方~~
posts - 63,  comments - 279,  trackbacks - 0

    关于怎么整合网上到处都是例子、apache也有比较详细的例子说明,我是参考这篇文章的http://www.blogjava.net/sterning/archive/2008/01/02/172317.html我使用他的源码HTML预览时还是不能正常显示,images/px(网上的一种解决方案)都有还是不能正常显示,无奈之下只有查看源代码了。
Struts2对通过JasperReportsResult.java类的doExecute方法对JasperReport进行了简单的整合,这个方法对JasperReport的API简单的包装(车轮理论^_^)

JasperReport jasperReport = (JasperReport) JRLoader.loadObject(systemId);
            jasperPrint 
= JasperFillManager.fillReport(jasperReport, parameters, stackDataSource);
其中systemId是这样来的
String systemId = servletContext.getRealPath(finalLocation);
也就是导入的是Jasper文件的绝对路径,Struts2直接使用的jasper文件(编译报表很耗时!不推荐使用jrxml文件)
<param name="location">/jasper/notification.jasper</param>
至于Action的代码就不必写的那么复杂了
package org.bulktree.jasper;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

/**
 * 
 * @author bulktree Email: laoshulin@gmail.com @ Nov 26, 2008
 */
public class JasperAction extends ActionSupport {

    private JRDataSource reportDataSource;

    @Override
    public String execute() throws Exception {
        
        //定义一个自定义的数据源

        reportDataSource = new JREmptyDataSource();
        
        /*编译很耗时,Ireport可以编译jrxml文件可以减少程序运行的压力
         * 下面一段代码可以不写直接使用Ireport编译好的jasper文件
         * 
         */

/*        ServletActionContext.getRequest().setAttribute("name", "LAOSHULIN");
        String path = ServletActionContext.getServletContext().getRealPath("/jasper");
        System.out.println(path);
        String sourceFileName = path + "\\" + "CarInstance.jrxml";
        String destFileName = path + "\\" + "CarInstance.jasper";

        JasperCompileManager.compileReportToFile(sourceFileName, destFileName);*/

        return SUCCESS;
    }

    public JRDataSource getReportDataSource() {
        return reportDataSource;
    }
}
被注释的代码只是指定jrxml文件和jasper文件的路径及编译过程,现实中不建议使用,关于jasperReport的各种强大功能本人会在项目结束后进行整理发布。
    继续吧!采用HTML格式预览时,莫名的出现一些图片的xx,但是我们并没有使用图片啊,关于这个为什么网上的资料很详细本人只是解读一下Struts2这个插件的源码最终解决图片显示问题
protected String imageServletUrl = "\images\";

 exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
                exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath() 
+ imageServletUrl);
现在明白为什么要新建一个images目录复制象素图片了吧!
对于HTML预览时右击查看源代码出现的是相对路径,但是大多数情况下根据生成的路径不能指定到px图片,不知道是不是这个插件包本身的问题还是其它的原因,总之先做出效果来、修改上句换成绝对路径吧!
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, servletContext.getRealPath(File.separator) + imageServletUrl);
这个图片xx问题自然就会解决了。 
       好久都没写文章了,感觉思路混乱不知道写了些什么,大家要是有不明白的可直接提出来。
posted on 2008-12-01 12:46 凌晨风 阅读(6077) 评论(6)  编辑  收藏 所属分类: Java学习笔记

FeedBack:
# re: Struts2整合JasperReport预览HTML格式不显示图片问题解决方案
2008-12-03 14:53 | zhanghuang
请教一个问题:柱状图html导出时,无论怎么输入过滤条件,为什么数据总是第一次显示的。pdf显示就正常。
希望帮我解答下,zhanghuang0713@163.com  回复  更多评论
  
# re: Struts2整合JasperReport预览HTML格式不显示图片问题解决方案
2008-12-03 22:28 | 扭曲的铅笔
期待你关于jasperReport相关文档,^_^  回复  更多评论
  
# re: Struts2整合JasperReport预览HTML格式不显示图片问题解决方案
2008-12-04 12:08 | 凌晨风
@zhanghuang
jasperReport是通过scriptlet嵌入图表的,要是真如你所说的那样你就应该检查一下你的代码是否动态的更新了图表。
  回复  更多评论
  
# re: Struts2整合JasperReport预览HTML格式不显示图片问题解决方案
2009-03-19 11:40 | 凌晨风
jasperReport报表HTML预览的时候不能指定到px图片
response.setContentType("text/html");
Map imagesMap = new HashMap();
request.getSession(true).setAttribute("IMAGES_MAP", imagesMap);
JRHtmlExporter exporter = new JRHtmlExporter();
exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath() + imageServletUrl);
指定这几个parameter就可以了  回复  更多评论
  
# re: Struts2整合JasperReport预览HTML格式不显示图片问题解决方案
2009-12-12 19:06 | fds
打印的代码怎么写啊。刚毕业来到一家小公司,没有办法啊。谢谢了。能不能发到我邮箱啊qiubite2020@126.com  回复  更多评论
  
# re: Struts2整合JasperReport预览HTML格式不显示图片问题解决方案
2012-04-28 09:46 | yuchen
不想要图片。。。网上这个问题的文章太少了。那个xx很讨厌.  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(11)

我参与的团队

随笔分类

随笔档案

文章分类

文章档案

新闻分类

新闻档案

收藏夹

围脖

最新随笔

搜索

  •  

最新评论

阅读排行榜

评论排行榜