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> 
            <property> 
                <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);
        }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6c48b4a7baa5a7151a66c775fda8559c.html