InternalResourceViewResolver для разрешения как JSP, так и HTML вместе

Я хочу, чтобы org.springframework.web.servlet.view.InternalResourceViewResolver разрешал как страницы JSP, так и HTML.

Это возможно?

Ответ 1

Вы можете настроить InternalResourceViewResolver что-то вроде этого:

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=""/>
</bean>

Где папка WEB-INF/pages может содержать страницы как jsp, так и html, а свойство суффикса остается пустым.

Затем в вашем контроллере вы можете иметь методы, которые возвращают представления html, и методы, которые возвращают представления jsp на основе суффикса. Например, если index.html и index.jsp оба существуют в WEB-INF/pages, вы можете сделать следующее:

@RequestMapping("/htmlView")
public String renderHtmlView() {
    return "index.html";
}

@RequestMapping("/jspView")
public String renderJspView() {
    return "index.jsp";
}

Однако, поскольку html-страницы статичны и не требуют обработки, для этого типа страницы лучше использовать тег <mvc:resources>, а не преобразователь представления. См. документы для получения дополнительной информации.