你的位置:首页 > Java教程

[Java教程]SpringMVC中使用Json传数据

  在web项目中使用Json进行数据的传输是非常常见且有用的,在这里介绍下在SpringMVC中使用Json传数据的一种方法,在我的使用中,主要包括下面四个部分(我个人喜好使用maven这类型工具进行项目构建):

1、引入依赖Jar包
  在POM.
        <dependency>           <groupId>com.faster</groupId>               <artifactId>jackson-databind</artifactId>           <version>2.7.5</version>         </dependency>         <dependency>             <groupId>org.codehaus.jackson</groupId>             <artifactId>jackson-core-asl</artifactId>             <version>1.9.13</version>        </dependency>        <dependency>             <groupId>org.codehaus.jackson</groupId>             <artifactId>jackson-mapper-asl</artifactId>             <version>1.9.13</version>        </dependency>

 


2、启动SpringMVC注解与Json消息转换器   
  如下片段是在SpringMVC的配置文件中的:   
     <mvc:annotation-driven />    <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">        <property name="supportedMediaTypes">         <list>           <value>text/html;charset=UTF-8</value>         </list>       </property>     </bean>

 


3、JSP界面用javascript异步请求
  <script type="text/javascript">    function getInfo() {      $.ajax({        type: "POST",        dataType: "json",        url: "/ajax/getHtml",        success: function(map) {            $("input[name=getInfo]").after("<table>");            $.each(map, function(i, item) {                 $("input[name=getInfo]").after(                     "<tr><td>" + item.userName + "</td>" +                      "<td>" + item.password + "</td></tr>");             });            $("input[name=getInfo]").after("</table");        },        error: function(ret) {          alert("加载失败");        }      });          }  </script>

 


4、控制器中执行请求
    @ResponseBody  //返回不是html之外的数据必须要有这个注解    @RequestMapping(value="/getHtml")    public ModelAndView getHtml() {        Map<String, User> map = new HashMap<String, User>();        User li=new User();        li.setUserName("Li");        li.setPassword("123");        User na=new User();        na.setUserName("Na");        na.setPassword("456");        map.put("1", li);        map.put("2",na);        return new ModelAndView(new MappingJackson2JsonView(),map);    }