| Blog信息 |
|
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7657609 建立时间:2006年5月29日 |

| |
|
[Spring]Spring中的 JasperReports 软件技术, 电脑与网络
lhwork 发表于 2006/6/30 16:15:09 |
|
13.7. JasperReportsJasperReports (http://jasperreports.sourceforge.net)
is a powerful, open-source reporting engine that supports the creation
of report designs using an easily understood XML file formats.
JasperReports is capable of rendering reports output into four
different formats: CSV, Excel, HTML and PDF.
13.7.1. Dependencies (依赖)Your application will need to include
the latest release of JasperReports, which at the time of writing was
0.6.1. JasperReports itself depends on the following projects:
BeanShell
Commons BeanUtils
Commons Collections
Commons Digester
Commons Logging
iText
POI
JasperReports also requires a JAXP compliant(适应的) XML parser.
13.7.2. Configuration(配置)To configure JasperReports views in
your ApplicationContext you have to define a ViewResolver to map view
names to the appropriate view class depending on which format you want
your report rendered in.
13.7.2.1. Configuring the ViewResolverTypically, you will use the ResourceBundleViewResolver to map view names to view classes and files in a properties file
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename"> <value>views</value> </property></bean> Here
we've configured an instance of ResourceBundleViewResolver which will
look for view mappings in the resource bundle with base name views. The
exact contents of this file is described in the next section.
13.7.2.2. Configuring the ViewsSpring contains five different
View implementations for JasperReports four of which corresponds to one
of the four output formats supported by JasperReports and one that
allows for the format to be determined at runtime:
JasperReport View Class1.JasperReportsView CSV2.JasperReportsHtmlView HTML3.JasperReportsPdfView PDF4.JasperReportsXlsView EXCEL5.JasperReportsMutiFormatView
Mapping one of these classes to a view name and a report file is
simply a matter of adding the appropriate entries into the resource
bundle configured in the previous section as shown here:
simpleReport.class=org.springframework.web.servlet.view.jasperreports.JasperReportsPdfViewsimpleReport.url=/WEB-INF/reports/DataSourceReport.jasper Here
you can see that the view with name, simpleReport, is mapped to the
JasperReportsPdfView class. This will cause the output of this report
to be rendered in PDF format. The url property of the view is set to
the location of the underlying report file.
13.7.2.3. About Report FilesJasperReports has two distinct
types of report file: the design file, which has a .jrxml extension,
and the compiled report file, which has a .jasper extension. Typically,
you use the JasperReports Ant task to compile your .jrxml design file
into a .jasper file before deploying it into your application. With
Spring you can map either of these files to your report file and Spring
will take care of compiling the .jrxml file on the fly for you. You
should note that after a .jrxml file is compiled by Spring, the
compiled report is cached for the life of the application. To make
changes to the file you will need to restart your application.
JasperReports拥有两种不同的类型的报表文件:设计文件,它是一个拥有.jrxml
扩展的文件,和编译好的报表文件。一般,你使用ant任务在你部署到你的程序中之前来编译你的.jrxml设计报表文件。使用Spring
你可以影射这些文件中的任一到你的报表文件,Spring将会为你在空闲时照顾编译.jrxml文件。
你应当注意在一个.jrxml文件被编译之后,这个编译的报表是被缓存的在你的application生命周期中。如果这些文件修改了,你需要重新启动的
你的程序。
13.7.2.4. Using JasperReportsMultiFormatView 使用JasperReportsMutiFormatViewThe
JasperReportsMultiFormatView allows for report format to be specified
at runtime. The actual rendering of the report is delegated to one of
the other JasperReports view classes - the JasperReportsMultiFormatView
class simply adds a wrapper layer that allows for the exact
implementation to be specified at runtime.
JasperReportsMutilFormatView允许你在运行时期指定报表的格式。报表的实际的表现是为委托到
JasperReports 视图类的中的一个--JasperMutilFormatView类简单的加了一个包装层允许在运行时期正确的实现被指定。
The JasperReportsMultiFormatView class introduces two concepts: the
format key and the discriminator key. The JasperReportsMultiFormatView
class uses the mapping key to lookup the actual view implementation
class and uses the format key to lookup up the mapping key. From a
coding perspective you add an entry to your model with the formay key
as the key and the mapping key as the value, for example:
public ModelAndView handleSimpleReportMulti(HttpServletRequest request,HttpServletResponse response) throws Exception {
String uri = request.getRequestURI(); String format = uri.substring(uri.lastIndexOf(".") + 1);
Map model = getModel(); model.put("format", format);
return new ModelAndView("simpleReportMulti", model);}In
this example, the mapping key is determined from the extension of the
request URI and is added to the model under the default format key:
format. If you wish to use a different format key then you can
configure this using the formatKey property of the
JasperReportsMultiFormatView class.
By default the following mapping key mappings are configured in JasperReportsMultiFormatView: Table 13.3. JasperReportsMultiFormatView Default Mapping Key Mappings
Mapping Key View Class csv JasperReportsCsvView html JasperReportsHtmlView pdf JasperReportsPdfView xls JasperReportsXlsView
So in the example above a request to URI /foo/myReport.pdf would be
mapped to the JasperReportsPdfView class. You can override the mapping
key to view class mappings using the formatMappings property of
JasperReportsMultiFormatView.
|
|
|
回复:Spring中的 JasperReports 软件技术, 电脑与网络
zzx(游客)发表评论于2006/9/30 10:37:58 |
| 你是说可以用spring来自动生成jasper的文件吗?而我用到视图层是*.ftl的,那如何将数据放到jasper的文件里呢!
如果你有全面的例子,能给我发一份吗?谢谢!
我的E_MAIL:axiang_2898@126.com
谢谢啦! |
|
» 1 »
|