SpringMVC对JSP的支持---支持JSTL标签库
1.标签库
JSP曾经是,而且现在依然还是Java领域占主导地位的视图技术。讲到JSP呢,标签库是必要讲的。 当为JSP添加功能时,标签库是一种很强大的方式,能够避免在脚本块中直接编写Java代码。
恩,比如JSTL标签库提供的循环<c:for>标签,判断<c:if>等标签。除了JSTL(JSP 标准标签库),Spring提供了两个标签库 用来帮助定义Spring MVC Web的视图。
要使用某个标签库,要在JSP页面首先声明这些标签库,然后引入jar包,就可以使用了。
2.Spring对JSP标签库的支持--解析JSTL视图
JSTL标签具体 不讲。只是说明下JSTL的格式化标签 和 JSTL的信息标签
JSTL标签: JSTL的格式化标签需要一个Locale对象,便于恰当地格式化地域相关值,如日期和货币。
JSTL的信息标签 需要借助Spring的信息资源和Locale,从而选择适当的信息渲染到HTML之中。
如上配置InternalResourceViewResolver会把 逻辑视图名 解析为InternalResourceView实例,这个实例会引用JSP文件。
但是如果 JSP文件中 使用JSTL标签 来处理格式化 和 处理信息的话,希望InternalResourceViewResolver 把视图解析为JstlView实例。因为通过解析JstlView,JSTL标签能够获得Locale对象以及Spring中配置的信息资源。
所以InternalResourceView实例 和 JstlView实例的差别是: JstlView实例 JSP中引用了JSTL标签。
让InternalResourceViewResolver将视图解析为JstlView 配置如下 设置viewClass属性
JavaConfig配置
@Bean
public ViewResolver viewResolver() { // 配置 试图解析器
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
//解析成JstlView
viewResolver.setViewClass(org.springframework.web.servlet.view.JstlView.class);
viewResolver.setExposeContextBeansAsAttributes(true);
return viewResolver;
}
XML配置
<!-- 视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
</bean>