http://www.cnblogs.com/rollenholt/archive/2012/12/27/2836035.html
问题
在Spring MVC应用程序中,我们经常需要应用一些视图解析器策略来解析视图名称。例如,联合使用三个视图解析器:InternalResourceViewResolver、ResourceBundleViewResolver和XmlViewResolver。
但是,如果返回了一个视图的名称,那么,使用哪一个视图解析器策略?
解决方法
如果应用了多个视图解析器策略,那么就必须通过“order”属性来声明优先级,order值越低,则优先级越高。例如:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 扫描web包,应用Spring的注解 -->
<context:component-scan base-package="com.xxx.training"/>
<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="basename">
<value>spring-views</value>
</property>
<property name="order" value="0" />
</bean>
<bean class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="location">
<value>/WEB-INF/spring-views.xml</value>
</property>
<property name="order" value="1" />
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix">
<value>/WEB-INF/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
<property name="order" value="2" />
</bean>
</beans>
注意:InternalResourceViewResolver必须总是赋予最低的优先级(最大的order值),因为不管返回什么视图名称,它都将解析视图。如果它的优先级高于其它解析器的优先级的话,它将使得其它具有较低优先级的解析器没有机会解析视图。
分享到:
相关推荐
本篇文章将深入探讨如何在Spring中配置Freemarker视图解析器,以及如何配置多个视图解析器以实现更灵活的应用场景。 首先,让我们了解如何配置单个Freemarker视图解析器。在Spring的配置文件(如`...
3. **Spring MVC 配置**:通常在 `WEB-INF` 目录下创建 `spring-servlet.xml` 文件,配置处理器映射器、视图解析器等。 4. **编写 Controller**:创建一个简单的 Java 类,用 `@Controller` 注解标识,然后定义处理...
通过`<mvc:interceptors>`配置,可以添加多个拦截器。 7. **异常处理** 可以通过`<exception-handler>`元素定义全局的异常处理器,当发生特定异常时,调用预定义的处理器方法。 综上所述,配置Spring MVC请求的...
这个文件是Spring MVC的核心配置文件,用于定义处理器映射器、视图解析器、拦截器等组件。例如,你可以在这里配置HandlerMapping,用于将URL映射到特定的控制器方法;配置ViewResolver,用于解析视图;还可以配置...
总结一下,Spring MVC提供了一个强大且灵活的架构来构建Web应用程序,通过DispatcherServlet、处理器映射、视图解析器等组件,实现了请求处理的解耦合,便于代码的维护和扩展。开发者可以根据需求自定义这些组件,以...
Spring MVC是Spring框架的一个重要组成部分,用于构建Web应用程序的模型-视图-控制器(MVC)架构。在Spring源代码解析的第四部分中,我们将重点关注DispatcherServlet的初始化过程,它是Spring MVC的核心组件。 ...
Spring配置文件主要用于配置Spring MVC的相关bean,包括文件上传解析器、请求映射器和控制器等。 1. **文件上传解析器**: - `<bean id="multipartResolver" class="org.springframework.web.multipart.commons....
Spring MVC默认提供了多个内置的MessageConverter,例如MappingJackson2HttpMessageConverter用于处理JSON,Jaxb2RootElementHttpMessageConverter用于处理XML。 要让Spring MVC根据请求的后缀名自动选择合适的...
Spring MVC 有多个核心组件,包括但不限于: 1. **DispatcherServlet**:作为前端控制器的角色,处理所有的 HTTP 请求和响应。 2. **HandlerMapping**:负责将请求映射到对应的处理器上。 3. **HandlerAdapter**:...
Spring MVC 是一个强大的Java Web应用程序开发框架,它提供了一种模型-视图-控制器(MVC)架构,用于构建高效、可维护的Web应用。在Spring MVC中,`SimpleUrlHandlerMapping`是一个基础的URL映射处理器,它负责将...
Spring MVC 是 Spring 框架的一个重要组成部分,用于构建基于模型-视图-控制器(Model-View-Controller)架构的Web应用程序。以下是对Spring MVC的详细讲解: 首先,要使用Spring MVC,你需要从Spring官网下载相应...
接下来是`config.xml`文件的配置,它是Spring MVC框架的配置文件之一,用于定义视图解析器、控制器映射等组件。 - **视图解析器**: ```xml <!--Definition of ViewResolver--> ...
在这个配置中,我们指定了`json`和`xml`媒体类型,并注册了相应的视图解析器(Jackson2JsonView和MarshallingView)。这样,当请求中包含`application/json`或`application/xml`时,ContentNegotiatingViewResolver...
在Spring MVC的配置中,需要确保Spring Security的过滤器优先级高于其他过滤器。 3. **结合MyBatis**:在MyBatis中创建UserMapper接口,用于处理用户相关的数据库操作,如查询用户信息、角色和权限。在Spring ...
5. **配置转换器优先级** 默认情况下,Spring MVC会根据请求头中的`Accept`字段选择合适的转换器。如果需要调整优先级,可以通过实现`WebMvcConfigurer`接口的`extendMessageConverters`方法进行设置。 总结来说,...
3. **配置 Spring MVC**:在 `springMvc-servlet.xml` 配置文件中,我们需要定义视图解析器(如 InternalResourceViewResolver),处理器映射器(HandlerMapping),处理器适配器(HandlerAdapter)等组件。...
- `user-servlet.xml`是Spring MVC的配置文件,包含Spring的bean定义,比如控制器(Controller)、视图解析器(ViewResolver)、数据绑定、拦截器等。这里的`<bean>`标签定义了应用中的对象,例如控制器类的实例,...
总的来说,Spring MVC环境搭建包括创建项目结构、配置核心的`web.xml`、安装Spring框架以及对Servlet的配置,这些步骤是构建基于Spring MVC的Java Web应用的基础。通过正确的配置,我们可以实现请求的转发、处理和...
创建Jasper视图解析配置文件 在项目的`WEB-INF`目录下创建一个名为`jasper-defs.xml`的文件,该文件用于定义JasperReport视图的配置信息。示例内容如下: ```xml <beans xmlns="http://...
总的来说,Spring MVC的配置涉及到多个层次,包括Servlet配置、Spring容器配置、MVC组件配置以及业务逻辑的Controller。理解这些配置对于开发人员来说是至关重要的,因为它们决定了整个Web应用的行为和流程。通过...