0

次のように reportCriteria.jsp があります。

<s:form action="showPdf" theme="css_xhtml" cssClass="form1small" name="reportgenerationform">
        <div id="searchHeaderReport">Generate Report</div>
        <div id="searchForm1">
            <s:select list="#application.proList" headerValue="Select" headerKey="select" label="Provider" id="providerId" name="providerName"></s:select>
            <div id="wwgrp_flightId" class="wwgrp">

                <div id="wwerr_showPdf_flightId" class="wwerr">
                    <div class="errorMessage">

                    </div>
                </div>
                <div id="wwlbl_flightId" class="wwlbl">
                    <label class="label" for="flightId"> Flight ID: </label>
                </div>
                <div id="wwctrl_flightId" class="wwctrl">
                    <select id="flightId" name="flightId">
                        <option selected="selected">select</option>
                    </select>   
                </div>
            </div>


            <div id="wwgrp_scheduleId" class="wwgrp">
                <div id="wwerr_showPdf_flightId" class="wwerr">
                    <div class="errorMessage">
                    </div>
                </div>
                <div id="wwlbl_flightId" class="wwlbl">
                    <label class="label" for="scheduleId"> Schedule ID: </label>
                </div>
                <div id="wwctrl_flightId" class="wwctrl">
                    <select id="scheduleId" name="scheduleId">
                        <option selected="selected">select</option>
                    </select>
                </div>
            </div>
            </div>
            <div id="submitdivid">
                    <sj:submit value="Generate Report" cssClass="orangebuttonsmall"/>
            </div>  
    </s:form>  

struts.xml のマッピングは次のとおりです。

    <action name="showPdf" class="com.view.ReportAction" method="showReport">
                        <result name="report" type="stream">
                            <param name="inputName">fileStream</param>
                            <param name="contentType">application/pdf</param>
                            <param name="contentDisposition">attachment;filename="PDF_Report.pdf"</param>
                        </result>
                        <result name="input">/reportCriteria.jsp</result>
                    </action>
<action name="flightMgmt" class="com.view.AdminAction" method="flightMgmt">
                <result name="flightMgmtClicked">/flightMgmt.jsp</result>
            </action>
<action name="reportGeneration" class="com.view.AdminAction" method="reportGeneration">
            <result name="reportGenerationClicked">/reportCriteria.jsp</result>
        </action>

メソッド showReport が「report」を返す場合、pdf コンテンツは「report_generation」という ID を持つ暗号化された形式で div にロードされます。メソッドが入力を返すと、「report_generation」という ID の div にエラーがある reportCriteria.jsp がロードされます。

私がやりたいことは、エラーが返されたときにjspをそのdivにロードする必要がありますが、メソッドが成功時に返す「レポート」を返す場合、結果タイプ="レポート"に示すようにファイルダウンロードボックスが表示される必要があることですstruts.xml で。

以下は、「report_generation」div を含む「loginSuccessAdmin.jsp」です:*

<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

    <s:url var="remoteurl1" action="flightMgmt"/>
    <s:url var="remoteurl2" action="reportGeneration"/>
    <s:url var="remoteurl3" action="dealMgmt"/>
    <sj:tabbedpanel id="remotetabs" selectedTab="0" collapsible="true">
        <sj:tab id="tab1" href="%{remoteurl1}" label="Flight Management"/>
        <sj:tab id="tab2" href="%{remoteurl2}" label="Report Generation"/>
        <sj:tab id="tab3" href="%{remoteurl3}" label="Deal Management"/>
    </sj:tabbedpanel>

</div>

<sj:tab id="tab2">自体は、id を report_generation として div を作成します。

私の目的を達成する可能性のあるものはありますか..事前に感謝します

4

1 に答える 1

1

それは可能ではありません。

なんらかの回避策をコーディングしない限り、Javascript はユーザーのコンピューターにファイルをダウンロードできません。ここの男のように。

fileDownload とエラーに同じアクションを使用しないでください。代わりに、最初のアクションで fileDownload が機能するかどうかを示すように 2 つに分割し、それに応じて、ファイルを確実に受信して 2 番目のアクションを呼び出すか、エラーを表示することができます。今やっているように div を押し込むことができます。

于 2013-11-13T20:52:49.180 に答える