2011-08-31 37 views
0

我有一個服務類,它使用dynamicjasper在xls中創建報告,我想知道如何在Flex應用程序中包含一個按鈕來執行此方法。在flex中調用Java方法HttpServletResponse 4

@Service("downloadService") 
@Transactional 
public class DownServiceRelTemp { 

    private static Logger logger = Logger.getLogger("service"); 

    @Resource(name="sessionFactory") 
    private SessionFactory sessionFactory; 

    public void downloadXLS(HttpServletResponse response) throws ColumnBuilderException, 
     ClassNotFoundException, JRException { 

     logger.debug("Downloading Excel report"); 

     DynamicReport dr = LayouteRelTemp.buildReportLayout(); 
     JRDataSource ds = getDataSource(); 
     JasperReport jr = DynamicJasperHelper.generateJasperReport(dr, new ClassicLayoutManager(), null); 
     JasperPrint jp = JasperFillManager.fillReport(jr, null, ds); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     Exporter.exportToXLS(jp, baos); 
     String fileName = "MyReport.xls"; 
     response.setHeader("Content-Disposition", "inline; filename=" + fileName); 
     response.setContentType("application/vnd.ms-excel"); 
     response.setContentLength(baos.size()); 
     Writer.write(response, baos); 
    } 

任何建議,沒有太多的Adobe Flex經驗,並希望有一個簡單的幫助。

回答

0

有與Java

  1. 使用Web服務
  2. 使用servlet
  3. 通過遠程處理對象的一些方法來交互彎曲。由AMF thecnology。

我推薦這位傳道士James Ward的tutorial,在本教程中,他解釋了將flex和java與代碼示例連接的不同方法。這就是我如何學會comunicate Flex和Java

注意到你需要檢查blazeDs圖書館

+0

感謝喬治。我會看看這個教程。 James Ward是Flex領域的傑出專家。 –