`
xly_971223
  • 浏览: 1276935 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring3 mvc 配置restful 内容协商

 
阅读更多
restful思想中一个很牛的特行就是内容协商
意思是根据请求参数决定响应的格式,如json xml等

废话少说,直接上代码
<?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:context="http://www.springframework.org/schema/context"  
   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" 
            default-autowire="byName">  


  <context:component-scan base-package="com.h2h.business.web.controller, com.h2h.business.web.ajax" />
 
  
  <bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
	<property name="messageConverters">
	     <list>
  			 <bean class = "org.springframework.http.converter.StringHttpMessageConverter">
   				<property name = "supportedMediaTypes">
   					 <list>
    					 <value>text/plain;charset=UTF-8</value>
    				 </list>
   				</property>
  			 </bean>
 		 </list>
	</property>
  </bean>
  
 

<!-- 
 <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
  	<property name="interceptors">
	  	<list>
			<bean class="com.h2h.web.interceptor.IfModifiedSinceInterceptor" />
	  	</list>
  	</property>
  </bean>
  
  <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
       <property name="basename" value="messages"/>
  </bean>

  <bean id="exceptionResolver" class="com.justel.idpro.web.springmvc.handler.ExceptionHandler">
  	<property name="defaultErrorView" value="error"/>  
  </bean>
-->
   
	<!-- 总错误处理-->
	<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
		<property name="defaultErrorView">  
		 	<value>/500</value>
		</property>
		<property name="defaultStatusCode">  
		 	<value>500</value>
		</property>
		
	</bean> 



    
    <bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="maxUploadSize" value="3145728"/>
	</bean>
	
	
<!-- ====================================  以下是restful 内容协商的配置  ================================  -->	
	
	<!-- 根据客户端的不同的请求决定不同的view进行响应, 如 /blog/1.json /blog/1.xml -->
    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
        <!-- 设置为true以忽略对Accept Header的支持-->
    	<property name="ignoreAcceptHeader" value="true"/>
        <!-- 在没有扩展名时即: "/user/1" 时的默认展现形式 -->
		<property name="defaultContentType" value="text/html"/>
	    <!-- 扩展名至mimeType的映射,即 /user.json => application/json -->
		<property name="mediaTypes">
			<map>
				<entry key="json" value="application/json" />
				<entry key="xml" value="application/xml" />
			</map>
		</property>
		<!-- 用于开启 /userinfo/123?format=json 的支持 -->
		<property name="favorParameter" value="false"/>
		<property name="viewResolvers">
			<list>
			    <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
			    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
			       <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
			       <property name="prefix" value="/pages"/>
			       <property name="suffix" value=".jsp"/>
			   </bean>
			</list>
		</property>
		<property name="defaultViews">
			<list>
				<!-- for application/json -->
				<!-- <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />  -->
				
				<!-- for application/xml -->
				<bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
					<property name="modelKey" value="toBeMarshalled"/>
					<property name="marshaller">
						<bean class="org.springframework.oxm.xstream.XStreamMarshaller">
							<property name="annotatedClasses">
								<list>
									<value>com.h2h.business.domain.Company</value>
								</list>
							</property>
						</bean>
					</property>
				</bean>
				
			</list>
		</property>
    </bean>
	
  
</beans>

分享到:
评论

相关推荐

    spring 3.0 应用springmvc 构造RESTful URL 详细讲解

    综上所述,Spring 3.0中的Spring MVC提供了全面的支持来构建RESTful服务,包括定义控制器、处理HTTP方法、路径变量、响应状态码、内容协商等。`RestUrlRewriteFilter.java`可能是一个定制的过滤器,用于进一步优化和...

    使用Spring构建Restful的Web服务.pdf

    - **内容格式协商**:允许客户端指定接受的内容格式,如JSON或XML。 - **HTTP缓存**:利用HTTP协议中的缓存机制,减少重复请求,提高性能。 - **Cache-Control**:用于控制缓存的行为。 - **ETags**:一种标识资源...

    Spring Restful 可运行完整项目

    Spring MVC Restful 基础搭建 ,主要包括:采用 GET POST PUT DELETE 进行数据的 CRUD ,以及内容协商机制,通过不同的请求返回不同的数据格式,包括 JSON XML 以及 HTML

    测试springmvc3

    5. **RESTful 支持**:通过 `@RequestMapping` 注解的 `produces` 和 `consumes` 属性,Spring MVC 3 支持创建 RESTful 风格的服务,方便构建 Web API。 6. **MVC 注解配置**:`@EnableWebMvc` 和 `@Configuration`...

    使用spring构建RESTful的Web服务

    - **内容格式协商**:允许客户端指定希望接收的数据格式(如JSON或XML)。 - **HTTP缓存**:通过设置适当的缓存头(如Cache-Control、ETags)来减少不必要的网络往返,提高响应速度。 #### 安全性 - **鉴权**:...

    spring 3.x企业应用开发实战

    6. REST支持:Spring 3.x增加了对RESTful Web服务的全面支持,允许开发者通过注解轻松地将控制器映射到HTTP请求,并支持多种内容协商机制。 7. 测试支持:Spring提供了一套完整的测试支持库,包括模拟对象、测试上...

    springmvc 中文手册详细带书签.pdf

    Spring 3.2版本新增了对Servlet 3异步请求处理的支持、改进了Spring MVC的测试框架、增强了内容协商功能、支持泛型的RestTemplate、对@RequestBody参数的支持,以及对日期和时间格式化的全球支持等。另外,Spring ...

    spring getting started

    除了阅读入门文章,初学者还可以通过其他资源继续深入学习Spring MVC,例如Keith Donald的Spring MVC 3 Showcase以及其他在线和印刷的资源。通过这些学习资源,初学者可以逐步掌握Spring MVC的高级功能,包括表单...

    Springmvc项目

    - **内容协商**: 支持多种格式的响应,如 JSON、XML。 4. **CRUD 操作** - **Create**: 创建新记录,通常使用 POST 请求。 - **Read**: 获取记录,GET 请求用于查询。 - **Update**: 更新记录,PUT 请求用于...

    SpringMVC3.0_Demo

    在"SpringMVC3.0_Demo"中,"spring3"目录可能包含了Spring的核心配置文件(如`applicationContext.xml`)、SpringMVC的配置文件(如`dispatcher-servlet.xml`)、以及Spring相关的bean定义。"jpa"目录则可能包含JPA...

    springmvc3.0所需jar绿色包

    1. **注解驱动的开发**:在 Spring MVC 3.0 中,开发者可以大量使用注解来简化配置,如 `@Controller`,`@RequestMapping`,`@Service`,`@Autowired` 等,这使得代码更加简洁且易于理解。 2. **类型安全的参数绑定...

    spring4.2.0官方开发文档

    其次,Spring MVC是Spring框架中的Web层组件,用于构建Web应用程序。4.2.0版本在处理HTTP请求、响应和视图解析方面进行了改进,支持更多的HTTP方法和内容协商策略。此外,它还加强了对RESTful服务的支持,使得构建...

    第六节 Web MVC REST 应用1

    此外,Spring MVC还提供了一些核心组件,如ContentNegotiationManager和ContentNegotiationStrategy,它们用于处理内容协商,即确定客户端期望的响应格式。根据HTTP请求头中的Accept字段,服务器可以选择合适的内容...

    Spring4.0.5框架架包

    5. **RESTful服务增强**:Spring MVC在4.0.5中进一步优化了处理RESTful请求的能力,包括更好的HTTP方法支持、更强大的路径变量解析和内容协商功能。 6. **数据访问增强**:Spring Data项目得到了扩展,增加了对更多...

    spring3.2.0源码

    3.2.0引入了路径变量、内容协商、部分响应以及更好的RESTful支持。 4. **数据访问**:Spring 3.2.0加强了对JPA、Hibernate和MyBatis等持久层框架的支持,提供了统一的数据访问抽象,简化了事务管理。同时,增加了对...

    spring-framework-3.1.0源码

    Spring MVC在3.1.0中引入了路径变量、内容协商、RESTful风格的改进,提升了Web应用的开发效率和灵活性。例如,@PathVariable注解用于从URL中提取动态参数,增强了路由功能。 7. **类型安全的转换服务** 3.1.0版本...

    Spring3.2中文版.docx

    4. **Web层的REST支持**:Spring MVC增加了对RESTful服务的支持,通过`@RequestMapping`注解可以轻松创建RESTful API。 5. **声明式模型验证**:Spring 3.2支持JSR-303/JSR-349标准的声明式模型验证,简化了数据校验...

    Spring Framework 4.1源代码

    在4.1版本中,Spring MVC增加了对ContentNegotiatingViewResolver的改进,使得内容协商更加智能,可以更好地处理多种格式的响应,如JSON、XML等。此外,模型视图名转换器(ModelAndViewNameTransformer)的引入允许...

    Spring Webscripts Reference Documentation

    3. **Dispatcher** - 负责路由请求到相应的Web Script,类似于Spring MVC中的DispatcherServlet。 4. **Adapter** - 框架提供的一系列适配器,用于将脚本执行的结果转换为HTTP响应,包括内容类型协商、错误处理等。 ...

Global site tag (gtag.js) - Google Analytics