SpringMVC Ajax请求

来源:互联网 发布:那些违规毁了的淘宝店 编辑:程序博客网 时间:2024/05/21 09:26

spring使用了jackson类库,帮助我们在Java对象和json、xml数据之间互相转换。他可以将控制器返回的对象直接转换成json数据,供客户端使用。客户端也可以传送json数据到服务器进行直接转换。使用步骤如下:
1、项目中需要引入下面两个jar包
jackson-core-asl-1.7.2jar
jackson-mapper-asl-1.7.2jar
2、spring配置文件中增加:

    <mvc:annotation-driver /><!-- 支持spring3.0新的mvc注解 -->    <!-- 启动spring MVC的注解功能,完成请求和注解 pojo的映射 -->      <bean      class="org.springframevork.web.servlet.mvc.annotaction.AnnotationMoethodHandlerAdapter">       <property name="cacheSecconds" value="0" />     <property name="messageConverters">       <list>          <bean          class="org.springframevork.http.converter.json.MappingJacksonHttpMessageConverter"></bean>        </list>     </property>   </bean>       

3、客户端代码a.jap如下:

    <script>       function createAjaxObj(){             var req;             if(window.XMLHttpRequest){             req = new XMLHttpRequest();            }else{             req = new ActiveXObject("Msxml2.XMLHttp");            }             return req;    }    function sendAjaxReq(){        var req = createAjaxObj();        req.open("get","myajax.do?method=test1&uname=张三");        req.onreadystatechange = function(){        eval("var result="+req.responseText);document.getElementById("div1").innerHtml = result[0].uname;        }         req.send(null);    }    </script>
<body>  <a href="javascript:void(0);" onclick="sendAjaxReq();">测试</a>  <div id="div1"></div></body>

4、服务器端代码如下:

Pojo User对象

public class User{  String id;  String uname;  String age;  构造方法(略);  get/set(略);}

Controller层:

@Controller@RequestMapping("myajax.do")public class MyAjaxController{  @RequestMapping(params="method=RequestMethod.GET")  public @ResponseBodyList<User> test1(String name) throws Exception{  String uname2=new String(uname.getBytes("iso8859-1"),"gbk");  System.out.println(uname2);  System.out.println("MyAjaxController.test1()");  List<User> list = new ArrayList<User>();  list.add(new User("小王","123"));  list.add(new User("小张""456"));  return list;  }}
0 0
原创粉丝点击