【发布时间】:2019-05-19 11:48:28
【问题描述】:
我正在尝试使用 org.springframework.web.servlet.view.document 实现 Excel/PDF 下载。AbstractXlsxView。
我的应用程序是使用 org.springframework.web.servlet.support 配置的。AbstractAnnotationConfigDispatcherServletInitializer。
我用 @Component 创建了我的 AbstractXlsxView 并为其指定了名称。
@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 文件(因为我已经配置了视图解析器)而不是读取 BaseXlsxView。
我见过这种实现方式(不使用 views.xml 和 <bean id="myBeanId" class="myClassQualifiedName" >)AbstractView 在其他应用程序中工作,但它在这里不工作。
【问题讨论】:
-
请分享您的配置
-
AbstractXlsxView没有实现配置
标签: java excel spring-mvc pdf pdf-generation