코바는 답글 감사드립니다.
타이포 문제는 포스팅할때 잘못한것 같네요.. 프로그램 내에서는 /resources/라고 적었습니다.
상대경로 말고, 파일위치상의 절대경로도 테스트 해봤는데..안먹히네요..
"file:d/Output"도 테스트 해봤는데 작동이 안됩니다...
@Override
protected final void renderMergedOutputModel(
Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
// Set the content type and get the output stream.
response.setContentType(getContentType());
OutputStream out = response.getOutputStream();
WritableWorkbook workbook;
if (this.url != null) {
Workbook template = getTemplateSource(this.url, request);
workbook = Workbook.createWorkbook(out, template);
}
else {
logger.debug("Creating Excel Workbook from scratch");
workbook = Workbook.createWorkbook(out);
}
buildExcelDocument(model, workbook, request, response);
// Should we set the content length here?
// response.setContentLength(workbook.getBytes().length);
workbook.write();
out.flush();
workbook.close();
}
AbstractJExcelView class안의 getTemplateSource에서 호출이 저런식으로 이루지는데..
getTemplateSource안에서는
protected Workbook getTemplateSource(String url, HttpServletRequest request) throws Exception {
LocalizedResourceHelper helper = new LocalizedResourceHelper(getApplicationContext());
Locale userLocale = RequestContextUtils.getLocale(request);
Resource inputFile = helper.findLocalizedResource(url, EXTENSION, userLocale);
// Create the Excel document from the source.
if (logger.isDebugEnabled()) {
logger.debug("Loading Excel workbook from " + inputFile);
}
return Workbook.getWorkbook(inputFile.getInputStream());
}
이런작업이 이루어지네요..상대경로가 맞으면 인식이 되어야 할 것 같은데..잘 모르겠습니다.