spring mvc 返回json

服务器端返回的是文本,客户端得到文本后将文本转换成json就可以了,服务器端将对象转换成json 的文本形式,并且需要设定文本的类型为text/plain,charset=UTF-8

所以在 application-context 中添加StringConverter及jsonConvert的bean 以及servlet mvc 注解处理适配器

<bean id="stringConverter"

        class="org.springframework.http.converter.StringHttpMessageConverter">

        <property name="supportedMediaTypes">

            <list>

                <value>text/plain;charset=UTF-8</value>

            </list>

        </property>

    </bean>

 

    <!-- 用于将对象转换为 JSON  -->

    <bean id="jsonConverter"

        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>

    <bean

        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

        <property name="messageConverters">

            <list>

                <ref bean="stringConverter" />

                <ref bean="jsonConverter" />

            </list>

        </property>

    </bean>

在Controller 函数中要表明 返回值是ResponseBody的内容

    @RequestMapping("/ajax2.do")

    public @ResponseBody UserInfo ajax2(String userId){

       

        System.out.println(userId);

        UserInfo user = new UserInfo();

        if("1001".equals(userId)){

            user.setUserId(1001);

            user.setUserName("悟空");

        }else{

            user.setUserId(1002);

            user.setUserName("八戒");

        }

   

        return user;

    }

Js 代码

$("#but2").click(function(){

           

            $.post("ajax2.do",{userId:$("#userId2").val()},function(data){

               

                $("#info2").html(data.userId+"---"+data.userName);

               

            },"json");

});

posted @ 2015-01-03 19:24  oftenlin  阅读(7960)  评论(0编辑  收藏  举报