Spring Web MVC 多viewResolver解决方案
2015-11-05 14:16
561 查看
viewResolver的定义如下:
[java] view
plaincopy
public interface ViewResolver {
View resolveViewName(String viewName, Locale locale) throws Exception;
}
在spring 中,常用的ViewResolver 有如下几种:
当我们需要多个viewResolver的时候,spring 框架为我们提供了很好的支持,我们只要在[spring-dispatcher-name]-servlet.xml中定义多个ViewResolver就可以了。如:
[xhtml] view
plaincopy
<bean id="viewResolver2" class="org.springframework.web.servlet.view.jangod.JangodViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.jangod.JangodView" />
<property name="exposeRequestAttributes" value="true" />
<property name="allowRequestOverride" value="false" />
<property name="exposeSessionAttributes" value="true" />
<property name="allowSessionOverride" value="false" />
<property name="jangodConfig" ref="jangodConfig" />
<property name="commonAttributes" ref="commonDatas" />
<property name="prefix" value="/WEB-INF/pages/" />
<!-- <property name="suffix" value=".html" /> -->
<property name="order" value="0" />
</bean>
<bean id="viewsResolver" class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="order" value="1" />
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="order" value="2" />
</bean>
DispatcherServlet会加载所有的viewResolver到一个list中,并按照优先级进行解析。
注意:①order中的值越小,优先级越高。
②而id为viewResolver的viewResolver的优先级是最低的。
[java] view
plaincopy
public interface ViewResolver {
View resolveViewName(String viewName, Locale locale) throws Exception;
}
在spring 中,常用的ViewResolver 有如下几种:
InternalResourceViewResolver | 将逻辑视图名字解析为一个路径 |
BeanNameViewResolver | 将逻辑视图名字解析为bean的Name属性,从而根据name属性,找定义View的bean |
ResourceBundleResolver | 和BeanNameViewResolver一样,只不过定义的view-bean都在一个properties文件中,用这个类进行加载这个properties文件 |
XmlViewResolver | 和ResourceBundleResolver一样,只不过定义的view-bean在一个xml文件中,用这个类来加载xml文件 |
[xhtml] view
plaincopy
<bean id="viewResolver2" class="org.springframework.web.servlet.view.jangod.JangodViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.jangod.JangodView" />
<property name="exposeRequestAttributes" value="true" />
<property name="allowRequestOverride" value="false" />
<property name="exposeSessionAttributes" value="true" />
<property name="allowSessionOverride" value="false" />
<property name="jangodConfig" ref="jangodConfig" />
<property name="commonAttributes" ref="commonDatas" />
<property name="prefix" value="/WEB-INF/pages/" />
<!-- <property name="suffix" value=".html" /> -->
<property name="order" value="0" />
</bean>
<bean id="viewsResolver" class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="order" value="1" />
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="order" value="2" />
</bean>
DispatcherServlet会加载所有的viewResolver到一个list中,并按照优先级进行解析。
注意:①order中的值越小,优先级越高。
②而id为viewResolver的viewResolver的优先级是最低的。
相关文章推荐
- 找不到Project Facets+eclipse项目出现红叉
- myeclipse添加使用hibernate框架详解
- Eclipse安装ADT长时间停留不动的解决办法
- java 值传递
- SpringAop_注解
- 构建高性能高并发Java系统
- java常用库日期操作类(2)
- Java Exception 捕获和展示
- 创建Maven子项目时出现“Unable to read parent POM”的问题
- eclipse下,使用junit4,报“no Junit tests found”错误的解决办法
- Java:try与finally
- 部署eclipse+junit+selenium未添加selenium-server-standalone-2.46.0.jar抛异常
- 【struts2】五大核心jar包 和 作用
- eclipse系列: Cannot change version of project facet Dynamic web的解决方法
- Java:按值传递还是按引用传递详细解说
- Java 线程池的原理与实现 (转)
- java中常用的类库学习(1)
- 【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
- Java 继承 继承条件下的构造方法调用 super
- java类的创建内容