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 内容以加密形式加载到 div 中,id 为“report_generation”。当该方法返回输入时,它会在 id 为“report_generation”的 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 是否可以工作,然后相应地您可以调用第二个确定接收文件,或者它可以向您显示您的错误可以像现在这样推入一个 div。

于 2013-11-13T20:52:49.180 回答