Spring MVC返回json数据的方法

Spring MVC 3.0 返回JSON数据的几种方法:

1. 直接 PrintWriter 输出
2. 使用 JSP 视图
3. 使用Spring内置的支持

// Spring MVC 配置

[html]  view plain copy
  1. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
  2.  <property name="messageConverters">  
  3.   <list>  
  4.    <bean  
  5.     class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />  
  6.   </list>  
  7.  </property>  
  8. </bean>  

// WEB-INF/lib 中添加
jackson-mapper-asl-1.6.4.jar
jackson-core-asl-1.6.4.jar
// Controller 中 使用:@ResponseBody 标注方法,该方法返回 Java对象(支持复杂对象),MappingJacksonHttpMessageConverter 会将对象转换为 JSON 输出

4. 自定义
// 以下是实现方法,仅仅是个演示
// 配置 BeanNameViewResolver

[html]  view plain copy
  1. <bean class="org.springframework.web.servlet.view.BeanNameViewResolver">  
  2.  <property name="order" value="1" />  
  3. </bean>  
  4. <bean id="jsonView" class="test.TestJsonView" />  

// 实现 TestJsonView

[java]  view plain copy
  1. public class TestJsonView extends AbstractView {  
  2.  @Override  
  3.  protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,  
  4.          HttpServletResponse response) throws Exception {  
  5.   JsonBuilder jb = new JsonBuilder();  
  6.   PrintWriter out = response.getWriter();  
  7.   out.print(jb.encode(model));  
  8.  }  
  9. }  

// 配置 View

[html]  view plain copy
  1. <bean id="jsonView" class="test.TestJsonView" />  

// Controller 中可以这样写:

[java]  view plain copy
  1. ModelAndView mav = new ModelAndView("jsonView");  
  2. // mav.addObject ...  
  3. return mav;  

5. 使用 spring-json.jar


// 就是第4种方法,但是强大的多。。。

你可能感兴趣的:(Spring MVC返回json数据的方法)