JasperReport 在Spring中的使用 问题

最近看了《JasperReports for Java Developers》,里面讲了怎么在Spring里使用JasperReport
照着里面的例子做了一下,例子是没有问题的,但是我把展现方式改为由JasperReportsHtmlView 展现就出问题了,所有的图片都出不来,是不是使用JasperReportsHtmlView还要配置其它的拦截器或是什么?我在Google里找了一通,也没能解决主要是E文不太好国外的论坛也找了,看得头大,所以把代码贴出来,那位用过的能指点一下,谢过了

[b]web配置文件[/b]
[code]<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>ReportWebApp</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>jasperSpring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jasperSpring</servlet-name>
<url-pattern>/jasperSpring/*</url-pattern>
</servlet-mapping>
</web-app>[/code]

[b]前台Jsp页面:[/b]
[code]<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Generate Report</title>
</head>
<body>
Click on the button to generate the report.
<form name="reportForm" action="jasperSpring/report" method="get"><input
type="submit" name="submitButton" value="Submit" /></form>
</body>
</html>[/code]

[b]jasperSpring-servlet.xml的内容:[/b]
[code]<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
<property name="driverClassName">
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</property>
<property name="url">
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>sa</value>
</property>
</bean>
<bean id="publicUrlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="report">jasperController</prop>
</props>
</property>
</bean>
<bean id="jasperController"
class="net.aachina.jasperreport.JasperSpringController">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="basename" value="views" />
</bean>
<bean id="ImageServlet" class="net.sf.jasperreports.j2ee.servlets.ImageServlet">
</bean>
</beans>[/code]

[quote]views.properties中的内容[/quote]
[code]
report.class=org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView
#report.class=org.springframework.web.servlet.view.jasperreports.JasperReportsHtmlView
#report.class=net.aachina.jasperreport.render.JasperReportsHtmlView
report.url=reports/ChartReportDemo.jasper
[/code]

控制器JasperSpringController的源码:
[code]
package net.aachina.jasperreport;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

import net.sf.jasperreports.engine.JRResultSetDataSource;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class JasperSpringController implements Controller {

private DataSource dataSource;

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException, SQLException
{

return new ModelAndView("report", getModel());
}

@SuppressWarnings("unchecked")
private Map getModel() throws ClassNotFoundException, SQLException
{
Connection connection;
Statement statement;
ResultSet resultSet;
HashMap model = new HashMap();
String query = "SELECT"+
" Employees.[LastName] AS Employees_LastName,"+
" Employees.[FirstName] AS Employees_FirstName,"+
" Employees.[EmployeeID] AS Employees_EmployeeID,"+
" Orders.[OrderID] AS Orders_OrderID,"+
" Orders.[OrderDate] AS Orders_OrderDate "+
" FROM "+
" Employees INNER JOIN Orders ON Employees.[EmployeeID] = Orders.[EmployeeID]";
connection = dataSource.getConnection();
statement = connection.createStatement();
resultSet = statement.executeQuery(query);
JRResultSetDataSource resultSetDataSource =new JRResultSetDataSource(resultSet);
model.put("datasource", resultSetDataSource);
return model;
}

public void setDataSource(DataSource dataSource)
{
this.dataSource = dataSource;
}
}
[/code]

JasperReport页面在IReport中的效果:


页面输出PDF效果:


但把输出改为JasperReportsHtmlView页面上的所有图片都显示不出来,应该是还有什么属性值设置的不对,哪位知道的请指点一下,项目里面的Jar包太大了不然把整个项目都上传上来
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值