InternalResourceViewResolver一起解析JSP和HTML


问题内容

我想org.springframework.web.servlet.view.InternalResourceViewResolver同时解析JSP和HTML页面。

那可能吗?


问题答案:

您可以配置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.htmlindex.jsp都存在,则WEB- INF/pages可以执行以下操作:

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

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

但是,由于html页面是静态的并且不需要处理,因此,<mvc:resources>对于这种类型的页面,最好使用标签而不是视图解析器。有关更多信息,请参阅文档