zoukankan      html  css  js  c++  java
  • Springmvc 配置json输出的几种方式

    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种方法,但是强大的多。。。

  • 相关阅读:
    spring 事务
    Servlet详解之两个init方法的作用
    被request.getLocalAddr()苦闷了很久
    Java获取IP地址:request.getRemoteAddr()警惕
    MongoDB笔记
    hexo+github搭建博客
    Python处理Excel(使用openpyxl库)
    Wireshark使用学习
    查看开启操作系统端口
    记录Centos7服务器搭建过程
  • 原文地址:https://www.cnblogs.com/quchengfeng/p/4658999.html
Copyright © 2011-2022 走看看