0

struts2 と hibernate フレームワークを使用して Web アプリケーションを作成しました。私のアプリケーションでは、レポート用にジャスパー レポートを使用する予定でした。これは、レポート用のデスクトップ アプリケーションで一般的に使用されていました。デスクトップアプリケーションでは、ジャスパーレポートを呼び出すのは非常に簡単ですが、struts2 と hibernate フレームワークを使用した Web アプリケーションでも同じように、jsp でジャスパーレポートを呼び出す方法がわかりません。struts2 と hibernate フレームワークを使用する Web アプリに jasper レポートを統合する方法を教えてください。

ここに私がこれまでに行ったことのソースコードがあります

struts.xmlと hibernate.conf.xml を含むデフォルト フォルダーにある Sample.jasper (すべてプレビュー モードで動作)

<?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 (アクションからジャスパーを呼び出す方法がわかりません)

<!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>
4

1 に答える 1

1

Struts2 JasperReport チュートリアルをご覧ください(次回は、質問する前に;)

次に、パッケージを拡張する必要がありますjasperreports-default(JasperReports を操作するために作成された特定の Interceptor スタック) struts-default

<package name="default" namespace="/" extends="jasperreports-default">

アクションはJasperの結果タイプを返す必要があります。

<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+互換性があります...

于 2013-01-28T13:17:23.567 に答える