2014-07-09 3 views
0

XLS 파일을 생성하는 서블릿을 구현했습니다. UI (GWT, RequestBuilder)에서 요청을하고 있습니다. 나는 응답을 얻지 만 준비된 파일 (자동 "다른 이름으로 저장"대화 상자)을 사용할 수 있습니까?GWT RequestBuilder 파일 다운로드

어떻게 든 헤더 등을 설정해야합니까?

요청 구현 내가 예를 사용하여 한 때 잘 (자동 파일 다운로드) 작업을했다

public void handleRequest(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html"); 
    response.setHeader("Content-Disposition", "attachment; filename=File.xls"); 

    HSSFWorkbook workbook = new HSSFWorkbook(); 

    try { 

     workbook = fileExporter.prepareExcellFile(); 

    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

    response.setStatus(HttpServletResponse.SC_OK); 
    OutputStream out = response.getOutputStream(); 
    workbook.write(out); 
    out.flush(); 
    out.close(); 
    response.flushBuffer(); 
} 

RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, GWT.getModuleBaseURL() + "downloadLimitsFile"); 
      try { 
       rb.setHeader("Content-type", "text/html"); 
        Request response = rb.sendRequest("", new RequestCallback() { 

        public void onError(Request request, Throwable exception) { 
         Window.alert("fail"); 
        } 

        public void onResponseReceived(Request request, Response response) { 

         Window.alert("file downloaded " + response.getText()); 
        } 
        }); 
       } catch (RequestException e) { 
        Window.alert("Failed to send the request: " + e.getMessage()); 
       } 

내 서블릿 구현 :

여기 내 코드입니다. 서블릿 URL을 앵커하지만 RequestBuilder를 사용하여 요청해야합니다.

누군가 도움을 줄 수 있습니까?

답변

0

적어도 제 3 자 라이브러리를 사용할 수는 없지만 두렵습니다.

"Content-Disposition"헤더를 추가해도 작동하지 않습니다.

+0

네가 맞다고 생각해. –