`
successfulroof
  • 浏览: 74361 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring mvc3.0 rest风格 Spring mvc 配合velocity并使用JSON(三)

 
阅读更多

之前 一篇文章 讲 Spring mvc3.0 rest风格 Spring mvc 配合velocity (二)

现在讲我在接触spring mvc+velocity+json并且是restful风格,碰到的一些问题

主要就是一个请求路径的问题,rest风格带来了不少的麻烦

本来我们如果使用简单的*.do请求方式,很容易就能实现 json

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" p:order="1">        

<property name="mediaTypes">             
<map>                 
<entry key="json" value="application/json"/>             
</map>         </property>       
  <property name="defaultViews">           
  <list>                 
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />            
 </list>         </property>     </bean>

 上面是普通的json数据返回,只要我们以*.json的形式来请求即可得到json数据

但是当我们使用了velocity,并且是rest风格的时候就非常的麻烦了,我之前一直纠结于这个问题,因为我的rest请求形式,所以我没有必要带上.json格式(我这里json并不仅仅用于ajax,比如非ajax请求,ajax完全可以使用*.json的形式)

没办法,在网上搜索一段时间找到了个解决办法

 

采用MappingJacksonHttpMessageConverter 类解决

首先需要修改 spring 的 AnnotationMethodHandlerAdapter

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
	 	<property name="messageConverters">       
             <list>
                 <ref bean="mappingJacksonHttpMessageConverter" />       
             </list>       
         </property>  
	 </bean> 

 

<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" ></bean>  

 

虽然我没有看他的具体源码,我猜测(仅仅是猜测,各位大侠可以拍板)顾名思义mappingJacksonHttpMessageConverter

应该将http response转换为了json数据类型返回给客户端

这样配置之后 ContentNegotiatingViewResolver 就无需配置

直接配置viewResolver 是velocity即可

 

 

 

刚刚看了一下spring官网 ,有另外一种方法可以达到restful的效果,用起来还比较简单,也无需配置

 the @Controller mechanism also allows you to create RESTful Web sites and applications, through the @PathVariable annotation and other features.

分享到:
评论

相关推荐

    精通Spring MVC4

    Spring MVC通过@RequestMapping的produces和consumes属性,以及@Consumes和@Produces注解,支持构建符合REST原则的服务,能够处理JSON、XML等多种内容类型。 11. **模板引擎集成** Spring MVC可以轻松地与各种...

    spring mvc

    12. **RESTful风格**: Spring MVC 支持创建RESTful API,通过@RequestMapping配合HTTP动词(GET、POST、PUT、DELETE等),可以轻松构建符合REST原则的接口。 13. **异常处理**: 通过@ControllerAdvice和@...

    springmvc+velocity+ Rest Services(xml,json)实例

    **Spring MVC + Velocity + REST Services (XML, JSON) 实例详解** 在当今的Web开发领域,Spring MVC、Velocity和RESTful服务是常见的技术栈。这个实例项目是一个基于Maven构建的无数据库操作的轻量级Web应用,它...

    spring-webmvc-3.2.5.RELEASE

    在3.2.5版本中,Spring MVC提供了对RESTful风格的URL路由、数据绑定、异常处理等特性。 2. **DispatcherServlet**: DispatcherServlet是Spring MVC的核心组件,作为前端控制器,负责接收HTTP请求,并根据配置的...

    spring-mvc-velocity-bootstrap

    在"spring-mvc-velocity-bootstrap-master"这个项目中,我们可以看到源码结构和配置文件,它们展示了如何配置Spring MVC以支持REST服务和Velocity模板,以及如何引入和使用Bootstrap库。通过学习这个项目的代码,...

    springmvc4.0的jar包

    7. **RESTful支持**:Spring MVC 4.0提供了更好的对RESTful风格的HTTP请求的支持,包括@RequestMapping的@RequestMapping(method = RequestMethod.GET/POST/PUT/DELETE)等,使得创建REST服务更加便捷。 8. **异步...

    springmvc的简单使用

    - **REST 支持**:Spring MVC 提供了对 RESTful 风格 URL 和 JSON/XML 数据的支持。 #### 二、Spring MVC 的优势 1. **开发效率高**:Spring MVC 基于方法级别的拦截,这意味着每个方法都可以处理一个具体的 HTTP ...

    springMVC学习资料

    3. **视图技术**:详细讲解如何使用Thymeleaf、Velocity等模板引擎,以及如何与Ajax和JSON集成。 4. **上传下载**:如何处理文件上传和下载,包括MultipartFile的使用和文件大小限制。 5. **国际化与本地化**:配置...

    springmvc独立运行包

    3. **视图解析**:Spring MVC 内置了多种视图解析器,如 JSP、FreeMarker、Velocity 等,可以轻松地将模型数据渲染到页面上。 4. **数据绑定**:自动将请求参数绑定到处理器方法的参数上,同时支持数据验证。 5. *...

    spring3x.rar_JavaScript/JQuery_Java_

    - **MVC(模型-视图-控制器)**:Spring MVC框架在3.0版本中得到进一步增强,增加了对RESTful Web服务的支持,以及对模板引擎如FreeMarker和Velocity的集成。 - **数据访问**:Spring 3.0强化了对JDBC、ORM(对象...

    spring jar包

    标题中的“spring jar包”指的是Spring框架相关的Java归档(JAR)文件,这些文件是Spring框架的核心组件或与其紧密相关的第三方库。Spring是一个广泛使用的Java企业级应用程序开发框架,它提供了一种模块化和可扩展...

    springboot参考指南

    使用Spring Boot v. 5. 了解Spring Boot特性 vi. 6. 迁移到生存环境 vii. 7. 高级主题 3. II. 开始 i. 8. Spring Boot介绍 ii. 9. 系统要求 i. 9.1. Servlet容器 iii. 10. Spring Boot安装 i. 10.1. 为Java开发者...

    NewStarBlog 开源Java博客系统.zip

    8. **RESTful API设计**:为了支持API驱动的开发和移动应用,NewStarBlog可能会遵循REST(Representational State Transfer)原则设计API接口,提供JSON格式的数据交换,便于前后端分离和多端开发。 9. **持续集成/...

    springMVC 实战指南

    SpringMVC 3.0新特性部分,提到了对REST风格URL的支持,增加了更多的注解用于实现完全注解驱动的开发。引入了HTTP输入输出转换器(HttpMessageConverter),提供了更加灵活的控制器方法签名,并增强了对静态资源处理...

    271个java需要用的jar包

    spring-webmvc-3.2.8.RELEASE.jar spring.jar standard-1.1.2.jar standard.jar stax2-api-3.1.1.jar struts-core-1.3.10.jar struts-el.jar struts.jar struts2-codebehind-plugin-2.3.15.3.jar struts2-config-...

    SpringMvc 3

    SpringMvc 3是Java开发中一个重要的Web框架版本,它基于Spring框架,为构建MVC(Model-View-Controller)架构的应用程序提供了强大的支持。在SpringMvc 3中,我们看到许多增强特性和改进,使得开发者能够更加高效、...

    struts2拆分页面的所用的jar包(7个)

    - **struts2-spring-plugin.jar**(如果使用Spring):整合Spring框架,提供依赖注入功能。 - **struts2-struts1-plugin.jar**(如果需要与Struts1兼容):提供与Struts1的兼容性。 5. **模板引擎**:在"struts2...

    concessionaria-citroen:Projeto de uma loja online de uma concessionaria Citroen com JAVA e Spring Boot

    标题中的"concessionaria-citroen:Projeto de uma loja online de uma concessionaria Citroen com JAVA e Spring Boot"表明这是一个使用Java和Spring Boot技术构建的在线汽车销售平台,专为Citroen品牌汽车经销商...

    struts2.3 jar包

    Struts2.3是Apache软件基金会的开源框架...了解并熟练使用这些JAR包,可以有效地构建出高效、可维护的Java Web应用。在实际项目中,开发者需要根据具体需求,选择合适的Struts2 JAR包,并正确配置到项目的类路径中。

    struts-2.5.26-min-lib.zip

    4. **Struts2 JSON/REST支持**:使Struts 2能够处理JSON和RESTful Web服务请求,适应现代Web应用的需求。 5. **Struts2 dojo插件**:提供了与Dojo JavaScript库的集成,便于创建富客户端应用。 6. **Struts2验证...

Global site tag (gtag.js) - Google Analytics