SpringMVC中使用Json传数据


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

1、引入依赖Jar包
  在POM.xml文件(或其他Maven的项目配置文件)中增加如下的依赖:
                <dependency>  
                    <groupId>com.fasterxml.jackson.core</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);
        }

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM