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

  • 相关阅读:
    公司 make makefile 工具
    单元测试
    光速是宇宙中最大的速度
    数据库与数据仓库
    看完了黑客帝国
    ArcGIS Server(详细介绍)转
    js判断文件大小
    项目经理人必须要遵循的14个成功原则(转)
    文件夹选择对话框 JS实现(转)
    导出excel乱码问题(小技巧)
  • 原文地址:https://www.cnblogs.com/quchengfeng/p/4658999.html
Copyright © 2011-2022 走看看