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

猜你喜欢

转载自www.linuxidc.com/Linux/2016-08/134726.htm