Конфигурация Spring MVC AbstractView Java - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь реализовать загрузку 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 .

enter image description here

У меня естьвидел этот способ реализации (не используя views.xml с <bean id="myBeanId" class="myClassQualifiedName" >) AbstractView работает в других приложениях, но не работает здесь.

1 Ответ

0 голосов
/ 19 декабря 2018

Я помню, что SpringMVC имеет адаптер представления по умолчанию, если вы не назначаете, и, возможно, адаптер представления по умолчанию возвращает представление jsp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...