Я пытаюсь реализовать загрузку Excel / PDF с помощью org.springframework.web.servlet.view.document. AbstractXlsxView .
Мое приложение настроено с использованием org.springframework.web.servlet.support. AbstractAnnotationConfigDispatcherServletInitializer .
Я создал свой AbstractXlsxView с @ Component и указанным ему именем.
@Component(VIEW_NAME_BASE_XLSX)
public class BaseXlsxView extends AbstractXlsxView {
public static final String VIEW_NAME_BASE_XLSX = "baseXlsxView";
public static final String MODEL_ATTRIBUTE_NAME_BASE_XLSX_VIEW_BEAN = "MODEL_ATTRIBUTE_NAME_BASE_XLSX_VIEW_BEAN";
@Override
protected void buildExcelDocument(Map<String, Object> modelMap, Workbook workbook, HttpServletRequest request,
HttpServletResponse response) throws Exception {
Sheet sheet = workbook.createSheet("Base Sheet");
Row row = sheet.createRow(0);
Cell cell = row.createCell(0, CellType.STRING);
cell.setCellValue(new Date());
response.setHeader("Content-Disposition",
"attachment; filename=" + "BaseExcelDocument" + System.currentTimeMillis());
}
}
Я использую указанное имя в качестве имени представления в ModelAndView , возвращаемом моим контроллером.
@GetMapping(value = "/exportBaseXlsx")
public ModelAndView exportBaseXlsx(ModelMap modelMap, HttpServletRequest httpServletRequest) {
return new ModelAndView(BaseXlsxView.VIEW_NAME_BASE_XLSX, BaseXlsxView.MODEL_ATTRIBUTE_NAME_BASE_XLSX_VIEW_BEAN,
null);
}
Это всегда выдает 404 ,Он пытается прочитать файл JSP (как я настроил View resolver) вместо чтения BaseXlsxView .
У меня естьвидел этот способ реализации (не используя views.xml с <bean id="myBeanId" class="myClassQualifiedName" >
) AbstractView работает в других приложениях, но не работает здесь.