如何在xls中进行预览?

时间:2013-01-21 06:13:03

标签: struts2 ireport

我正在使用以下代码获取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检测到未处理的问题   exception:消息:没有为操作定义结果   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">                                                   

Stacktraces

  

没有为操作定义的结果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 =假
  在您的WEB-INF / classes / struts.properties文件中。

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

1 个答案:

答案 0 :(得分:0)

您似乎尝试在没有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>