为什么我需要一个视图类来解析Spring MVC中的JSTL视图?

时间:2015-09-08 13:41:06

标签: spring jsp spring-mvc jstl

我正在经历Craig Walls Manning Spring4 in Action

在创建JSP视图中,他建议,

  

InternalResourceViewResolver最终解析逻辑视图   将名称引入引用JSP文件的InternalResourceView实例。   但是,如果这些JSP文件引用JSTL标记进行格式化或   消息,然后您可能希望配置InternalResourceViewResolver来代替解析JSTLView。

使用InternalResourceView Resolver解析器JstlView而不是InternalResourceView所需的只是设置其viewClass属性。

像这样,

 @Bean
    public ViewResolver viewResolver() {

        InternalResourceViewResolver resolver =
            new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setViewClass(org.springframework.web.servlet.view.JstlView.class);

        return resolver;
    }

为什么我需要添加此行

resolver.setViewClass(org.springframework.web.servlet.view.JstlView.class);

这个课程究竟意味着什么?

有什么建议吗?`

1 个答案:

答案 0 :(得分:6)

在较旧的Spring版本中,没有自动检测功能。这已在不同的课程中慢慢介绍。 InternalResourceViewResolver在早期没有自动检测JSTL,这要求始终将JstlView指定为viewClass

然而,曾经包含Spring的旧SVN中的this revision添加了它,从那时起就可以自动检测要使用的viewClass

提交讯息

        

r14417 | jhoeller | 2007-08-05 00:01:19 +0200(zo,05 Aug 2007)| 2行

     

如果存在JSTL API,则InternalResourceViewResolver使用JstlView作为默认值(而不是InternalResourceView)

     

它仍然出现在我无法分辨的书中的原因,我怀疑由于重复使用以前版本中的材料而已经留下了,但这是猜测。只有the author才能回答这个问题。