我使用struts2和hibernate框架创建了一个Web应用程序。 在我的应用程序中,我计划使用jasper报告进行报告,我常用于桌面应用程序进行报告。 在桌面应用程序中调用jasper报告很安静很简单。但是在使用struts2和hibernate框架的web应用程序中,我不知道如何在jsp中调用jasper报告。 谁能告诉我如何在使用struts2和hibernate框架的web应用程序中集成jasper报告
这是我迄今为止所做的源代码
Sample.jasper ,它位于一个带有struts.xml和hibernate.conf.xml的默认文件夹中(它都在预览模式下工作)
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report name" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="a309cf26-d77c-4e85-8d52-2a89cff70117">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="43"/>
<queryString language="hql">
<![CDATA[FROM Login]]>
</queryString>
<field name="id" class="java.lang.Integer"/>
<field name="name" class="java.lang.String"/>
<field name="pass" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch"/>
</title>
<pageHeader>
<band height="35" splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band height="61" splitType="Stretch">
<staticText>
<reportElement uuid="5eaebc5a-8cc1-45dd-9596-c4057ea97aed" x="118" y="41" width="100" height="20"/>
<textElement/>
<text><![CDATA[NAME]]></text>
</staticText>
<staticText>
<reportElement uuid="5eaebc5a-8cc1-45dd-9596-c4057ea97aed" x="271" y="41" width="100" height="20"/>
<textElement/>
<text><![CDATA[PASSWORD]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="30" splitType="Stretch">
<textField>
<reportElement uuid="07e4ccc0-6491-4a87-b03b-bed972fb344d" x="118" y="4" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="07e4ccc0-6491-4a87-b03b-bed972fb344d" x="271" y="4" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{pass}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>
struts.xml (我不知道如何从行动中调用jasper)
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
</package>
</struts>
答案 0 :(得分:1)
查看Struts2 JasperReport Tutorial(下次,之前提出问题;)
然后,你的包应该扩展jasperreports-default
(为使用JasperReports而创建的特定拦截器堆栈),而不是struts-default
:
<package name="default" namespace="/" extends="jasperreports-default">
并且您的操作应返回Jasper result type:
<result name="success" type="jasper">
<param name="location">/jasper/our_compiled_template.jasper</param>
<param name="dataSource">myList</param>
<param name="format">PDF</param>
</result>
同时确保您拥有最新的Struts2版本,大多数选项都是Struts2 2.1.2+
兼容...