我正在经历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);
这个课程究竟意味着什么?
有什么建议吗?`
答案 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才能回答这个问题。