我正在通过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);
这堂课到底是什么意思?
有什么建议吗?
最佳答案
在较早的Spring版本中,没有自动检测功能。在不同的类别中已对此进行了缓慢介绍。 InternalResourceViewResolver
在早期没有自动检测JSTL,这要求始终将JstlView
指定为viewClass
。
但是,在曾经包含Spring的非常老的SVN中,this revision已添加了它,此后便自动检测要使用的viewClass
。
提交讯息
r14417 | jhoeller | 2007-08-05 00:01:19 +0200(zo,2007年8月5日)| 2行
如果存在JSTL API,则InternalResourceViewResolver使用JstlView作为默认值(而不是InternalResourceView)
我仍然无法说这本书的原因,我怀疑是由于重用了以前发行版中的内容,但这是一个猜测。只有the author可以回答该问题。