我正在穿过克雷格墙Manning Spring4 in Action .
在创建 JSP View 时,他建议,
The InternalResourceViewResolver ultimately resolves logical view names into instances of InternalResourceView that reference JSP files. But if those JSP files are referencing JSTL tags for formatiing or messages, then you may want to configure InternalResourceViewResolver to resolve a JSTLView instead.
要使用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 版本中,没有自动检测功能。这已经在不同的类(class)中慢慢引入。 InternalResourceViewResolver
早期没有自动检测 JSTL,这需要始终将 JSTLView
指定为 viewClass
。
但是this revision在曾经包含 Spring 的非常古老的 SVN 中添加了它,从那时起,就会自动检测要使用哪个 viewClass
。
提交消息
r14417 | jhoeller | 2007-08-05 00:01:19 +0200 (zo, 05 aug 2007) | 2 lines
InternalResourceViewResolver uses JstlView as default (instead of InternalResourceView) if the JSTL API is present
它仍然在书中的原因我无法告诉,我怀疑由于重复使用了以前版本中的 Material ,所以它被留在了书中,但这只是一个猜测。仅the author可以回答这个问题。
关于spring - 为什么我需要一个 View 类来解析 Spring MVC 中的 JSTL View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32459400/