【问题标题】:How to get the preview in xls?如何在 xls 中获得预览?
【发布时间】:2013-01-21 06:13:02
【问题描述】:

我正在使用下面的代码来获取 xls 中的输出。

else if ("xls".equalsIgnoreCase(reporttype)) {
        try
        {

            System.out.println("inside xls1");

        response.setContentType("application/vnd.ms-excel");
        System.out.println("inside xls2");
        response.setHeader("Content-Disposition", "inline; filename=\""
                + strId + ".xls\"");
        System.out.println("inside xls3");
        exporter = new JRXlsExporter();
        System.out.println("inside xls4");
        exporter.setParameter(JRExporterParameter.JASPER_PRINT,
                jasperPrint);
        System.out.println("inside xls5");
        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,
                ouputStream);
        System.out.println("inside xls6");

        System.out.println("inside exporter for XLS: "+exporter);
        }
        catch(Exception e)
        {
            System.out.println("inside xls catch");
            e.printStackTrace();
        }

    }

但它发生在错误之下。

Struts 问题报告 Struts 检测到一个未处理的 异常:消息:没有为操作定义结果 com.coin.fk.SalesAction 和结果异常
文件:file:/D:/blm/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/blm/WEB-INF/classes/struts.transaction.xml
行号:44 列号:77

            <action name="salesAction_*" method="{1}" class="com.coin.fk.SalesAction">      
            <interceptor-ref name="defaultLoginStack"/>     
            <interceptor-ref name="defaultStack">                                                   

堆栈跟踪

没有为操作 com.coin.fk.SalesAction 定义结果和结果异常 - 操作 - 文件:/D:/blm/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/blm /WEB-INF/classes/struts.transaction.xml:44:77
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:350)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(未知来源)

您看到此页面是因为已启用开发模式。开发模式或 devMode 启用额外的调试行为和报告以帮助开发人员。要禁用此模式,请设置:
struts.devMode=false
在您的 WEB-INF/classes/struts.properties 文件中。

我该如何面对这个问题。 请帮助如何调试此错误。

【问题讨论】:

  • @AleksandrM,您是否在编辑原始问题时添加了答案??
  • 我怀疑“devMode”部分是你的:)

标签: struts2 ireport


【解决方案1】:

您似乎正在尝试配置 Global Exceptions 而没有 Global Result 名称 Exception

类似这样的:

<global-results>
    <result name="exception">jsp/error.jsp</result>
</global-results>

<global-exception-mappings>
    <exception-mapping exception="java.lang.Exception"
        result="exception" />
</global-exception-mappings>

按照这个特定的顺序。

您似乎也有两个拦截器堆栈,一个带有您的自定义拦截器,另一个是默认堆栈。您应该只使用一个堆栈,以及您需要的所有拦截器,以避免在每个请求上执行两次:

 <action name="salesAction_*" method="{1}" class="com.coin.fk.SalesAction">      
            <interceptor-ref name="defaultLoginStack"/>     
            <interceptor-ref name="defaultStack">   
            <!--result ecc...-->
 </action>

应该变成

 <action name="salesAction_*" method="{1}" class="com.coin.fk.SalesAction">      
            <interceptor-ref name="defaultLoginStack"/>     
            <!--result ecc...-->
 </action>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 2019-09-20
    相关资源
    最近更新 更多