Spring web MVC 框架学习笔记 之 ViewResolver技术
程序员文章站
2022-07-03 23:18:41
...
上次的文章中介绍了ModelAndView对象中的view对象,可以使用字符串来让Spring框架进行解析获得适合的视图。而解析View的就是ViewResolver技术。
ViewResolver的定义如下:
public interface ViewResolver {
View resolveViewName(String viewName, Locale locale) throws Exception;
}
在[spring-dispatcher-name]-servlet.xml中,可以定义viewResolver:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/jsp/"/>
<property
name="suffix" value=".jsp"/>
</bean>
来让DispacherServlet进行加载默认的viewResolver,如果没有设置viewResolver,spring使用InternalResourceViewResolver进行解析。
Spring实现ViewResolver的非抽象类且我们经常使用的viewResolver有以下四种:
InternalResourceViewResolver | 将逻辑视图名字解析为一个路径 |
BeanNameViewResolver | 将逻辑视图名字解析为bean的Name属性,从而根据name属性,找定义View的bean |
ResourceBundleResolver | 和BeanNameViewResolver一样,只不过定义的view-bean都在一个properties文件中,用这个类进行加载这个properties文件 |
XmlViewResolver | 和ResourceBundleResolver一样,只不过定义的view-bean在一个xml文件中,用这个类来加载xml文件 |
使用多视图解析器:
我们不想只使用一种视图解析器的话,可以在[spring-dispatcher-name]-servlet.xml定义多个viewResolver:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id=”beanNameViewResolver” class=”...BeanNameViewResolver”>
<property name="order" value="1"></property>
</bean>
<bean id=”beanNameViewResolver” class=”...XmlViewResolver”>
<property name="order" value="0"></property>
</bean>
DispatcherServlet会加载所有的viewResolver到一个list中,并按照优先级进行解析。注意order中的值越小,优先级越高。而id为viewResolver
的viewResolver的优先级是最低的。
推荐阅读
-
Spring MVC学习笔记之Controller查找(基于Spring4.0.3)
-
【技术君啃书之旅】web安全之机器学习入门 第二章笔记
-
Spring web MVC 框架学习笔记 之 ViewResolver技术
-
荐 从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---11. MVC功能之http请求处理器的编写---简易框架最后一公里!
-
PHP MVC框架之加载器学习笔记
-
PHP MVC框架 视图之常用学习笔记
-
Java for Web学习笔记(一零一):Spring框架中使用JPA(1)Transaction(上)
-
Java for Web学习笔记(一零七):Spring框架中使用JPA(7)密码和BCrypt
-
Java for Web学习笔记(一零二):Spring框架中使用JPA(2)Transaction(下)
-
Java for Web学习笔记(一零三):Spring框架中使用JPA(3)JPA仓库