Springmvc 配置json輸出的幾種方式

來源:互聯網
上載者:User

標籤:

Spring MVC 3.0 返回JSON資料的幾種方法:

1. 直接 PrintWriter 輸出

2. 使用 JSP 視圖

3. 使用Spring內建的支援

// Spring MVC 配置

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters">  <list>   <bean    class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />  </list> </property></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

 
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"> <property name="order" value="1" /></bean><bean id="jsonView" class="test.TestJsonView" />

// 實現 TestJsonView

public class TestJsonView extends AbstractView { @Override protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,         HttpServletResponse response) throws Exception {    response.setCharacterEncoding("utf-8");
  response.setContentType("text/html;charset=utf-8");
  Gson gson=new Gson();
  PrintWriter out = response.getWriter();
   if (model.size() == 1) { 
     out.print(gson.toJson(model.values().iterator().next()));
         } else { 
          out.print(gson.toJson(model));
         }  }}

// 配置 View

<bean id="jsonView" class="test.TestJsonView" />

// Controller 中可以這樣寫:

ModelAndView mav = new ModelAndView("jsonView");// mav.addObject ...return mav;

5. 使用 spring-json.jar

// 就是第4種方法,但是強大的多。。。

Springmvc 配置json輸出的幾種方式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.