2013-01-21 30 views
0

我正在使用下面的代碼來獲取xls中的輸出。如何在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和結果異常
文件定義的結果/ d:/blm/.metadata/ .plugins/org.eclipse.wst.server.core/TMP0/wtpwebapps/BLM/WEB-INF /類/ struts.transaction.xml
行號:44列編號:77

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

蹤跡

沒有爲action com.coin.fk.SalesAction和result定義的結果Exception - action - file:/ 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)
有機.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.jav一: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啓用額外的調試行爲和報告來協助開發人員。要禁用此模式,請在您的WEB-INF/classes/struts.properties文件中設置:
struts.devMode = false

我該如何面對這個問題。 請幫助如何調試此錯誤。

+0

@AleksandrM,你添加你的答案編輯原始題 ?? –

+0

@AndreaLigios:什麼? :) –

+0

我懷疑「devMode」部分是你的:) –

回答

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>