码迷,mamicode.com
首页 > 编程语言 > 详细

Spring MVC ajax:post/get 的具体实现

时间:2015-04-09 23:28:25      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:

Post 方式

1、自动注入

  a. pom.xml ---- 配置Maven,添加必要的jar包

 1 <!--用于 String-JSONObject 转换 -->
 2 <dependency>
 3     <groupId>org.json</groupId>
 4     <artifactId>org.json</artifactId>
 5     <version>chargebee-1.0</version>
 6 </dependency>
 7 
 8 <!--用于 SpringMVC 注入 -->
 9 <dependency>
10     <groupId>org.codehaus.jackson</groupId>
11     <artifactId>jackson-mapper-asl</artifactId>
12     <version>1.9.8</version>
13     <type>jar</type>
14     <scope>compile</scope>
15 </dependency>

  b.application-servlet.xml 创建 AnnotationMethodHandlerAdapter

1 <!-- 方式1 -->
2 <mvc:annotation-driven />
3 <!-- 方式2 -->
4 <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
5 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
6 
7 <!-- 两种方式等价的,mvc:annotation-driven 会自动注册方式2中的连个bean -->

  c.前端jsp页面 ---- Jquery的ajax

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <script type="text/javascript">
 5 $(function() {
 6     function ajaxtest(){
 7     var seaText = $("#search").attr("value");
 8     var data={};
 9     data.serachdata = seaText;        
10     var url = "${pageContext.request.contextPath}/search1"
11     $.ajax({
12             url : url,
13             type : post,
14             dataType : json,
15             data:JSON.stringify(data),
16             contentType : "application/json; charset=utf-8",
17             success:function(result){
18                     console.log(result);
19                 }
20             }
21         );
22     }
23     $("#search").on("keyup", ajaxtest);
24 }//end ready
25 </head>
26 </script>
27 <body>
28 <div>
29        <input id="search" type="text" name="search">
30        <input id="btn1"type="submit" value="Search">
31 </div>
32 </body>
33 </html>

  d.Controller 代码

  SpringMVC 根据@RequestMapping将前端的ajax请求映射到search 的controllerAnnotationMethodHandlerAdapter会把request中的json对象,采用合适方式自动转换成Map对象  ★★

1 @RequestMapping(value = "search",method = RequestMethod.POST)
2     @ResponseBody public String search(@RequestBody HashMap<String, String> hasmap)throws Exception{
3           List<String> resultList = testMapper.searchByKeyWords(hasmap.get("serachdata")+"%");
4          return new org.json.JSONArray(resultList).toString();
5 }

2. 通过HttpServletRequest request来接收json

  这种方式是比较常见的这里,我这给出Controller的代码:

1 @RequestMapping(value = "search",method = RequestMethod.GET)
2 @ResponseBody public String search(HttpServletRequest request ,HttpServletResponse response)throws Exception{
3       org.json.JSONObject jsonob = new JSONObject(request.getParameter("jsonobj"));
4       List<String> resultList = testMapper.searchByKeyWords("a%");
5       return new org.json.JSONArray(resultList).toString();
6 }    

Get 方式

  由于get是通过URI传递参数的,所以没有办法使用自动注入,只能通过request来接收参数,Controller与post方式的类似。

 

第一篇博文啊!希望大家多多指点....

   

Spring MVC ajax:post/get 的具体实现

标签:

原文地址:http://www.cnblogs.com/felixpan/p/4394383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!