spring mvc:视图解析器
2023-09-14 08:57:51 时间
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 DispatcherServlet改造为 CSE RestServlet 常见问题汇编
- ssh(Spring+Spring mvc+hibernate)——showEmp.jsp
- ssh(Spring+Spring mvc+hibernate)——applicationContext.xml
- sh(Spring+Spring mvc+hibernate)——IDeptDao.java
- Spring MVC中forward请求转发2种方式(带参数)
- spring mvc: 资源绑定视图解析器(不推荐)
- spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping
- spring mvc:文件上传
- 20-spring学习-Spring MVC基本操作
- spring boot:thymeleaf给fragment传递参数的方法(spring boot 2.3.3)
- spring boot连接mysql8.0
- 事务,Oracle,MySQL及Spring事务隔离级别
- Spring的jar包下载及目录详解
- Spring Boot in Kotlin实践
- Spring MVC 上传文件(upload files)
- Spring学习 6- Spring MVC (Spring MVC原理及配置详解)
- Spring MVC @Transactional注解方式事务失效的解决办法
- Spring MVC配置CORS(解决跨域请求)
- 学习Spring Boot:(十一) 自定义装配参数
- spring AOP
- Spring MVC 学习总结(九)——Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务)
- Spring MVC 学习总结(四)——视图与综合示例
- Spring MVC生成RSS源
- Spring 常用注解(IOC/AOP/MVC)
- 【Spring MVC】Spring MVC实现原理(源码阅读)