让我苦苦寻找的那段代码---springmvc的ajax前后台交互

导入jar包:

web.xml

1   <servlet>
2       <servlet-name>spmvc</servlet-name>
3       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
4       <load-on-startup>1</load-on-startup>
5   </servlet>
6   <servlet-mapping>
7       <servlet-name>spmvc</servlet-name>
8       <url-pattern>*.do</url-pattern>
9   </servlet-mapping>

在web.xml同级目录下建立spmvc-servlet.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:p="http://www.springframework.org/schema/p"
 5     xmlns:context="http://www.springframework.org/schema/context"
 6     xmlns:mvc="http://www.springframework.org/schema/mvc"
 7     xmlns:tx="http://www.springframework.org/schema/tx"
 8     xmlns:aop="http://www.springframework.org/schema/aop"
 9     xsi:schemaLocation="
10         http://www.springframework.org/schema/beans
11         http://www.springframework.org/schema/beans/spring-beans.xsd
12         http://www.springframework.org/schema/context
13         http://www.springframework.org/schema/context/spring-context.xsd
14         http://www.springframework.org/schema/mvc
15         http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
16         http://www.springframework.org/schema/tx
17         http://www.springframework.org/schema/tx/spring-tx.xsd
18         http://www.springframework.org/schema/aop
19         http://www.springframework.org/schema/aop/spring-aop.xsd">
20 <context:component-scan base-package="controller" />
21 <context:annotation-config />
22 <mvc:annotation-driven />
23 </beans>

实体类User.java

 1 package Model;
 2
 3 public class User {
 4     private int id;
 5     private String username;
 6     private int age;
 7     public int getId() {
 8         return id;
 9     }
10     public void setId(int id) {
11         this.id = id;
12     }
13     public String getUsername() {
14         return username;
15     }
16     public void setUsername(String username) {
17         this.username = username;
18     }
19     public int getAge() {
20         return age;
21     }
22     public void setAge(int age) {
23         this.age = age;
24     }
25
26 }

Action代码:

 1 package controller;
 2
 3 import java.util.ArrayList;
 4 import java.util.HashMap;
 5 import java.util.List;
 6 import java.util.Map;
 7
 8 import javax.servlet.http.HttpServletRequest;
 9
10 import org.json.JSONException;
11 import org.json.JSONObject;
12 import org.springframework.stereotype.Controller;
13 import org.springframework.web.bind.annotation.RequestBody;
14 import org.springframework.web.bind.annotation.RequestMapping;
15 import org.springframework.web.bind.annotation.RequestMethod;
16 import org.springframework.web.bind.annotation.ResponseBody;
17
18 import Model.User;
19
20 @Controller
21 @RequestMapping("/user")
22 public class DemoController {
23     @RequestMapping(value="/list",method=RequestMethod.GET)
24     @ResponseBody
25     public Map<String, Object> getUserList(){
26         List<User> list=new ArrayList<User>();
27         User user=new User();
28         user.setId(1);
29         user.setUsername("guoyansi");
30         user.setAge(25);
31         list.add(user);
32         Map<String, Object> map=new HashMap<String, Object>(3);
33         map.put("total", 1);
34         map.put("data", list);
35         map.put("success", "true");
36         return map;
37     }
38
39     @RequestMapping(value="/add1",method=RequestMethod.POST)
40     @ResponseBody
41     public Map<String, String> addUser1(@RequestBody User user){
42         /**
43          * 这种实体类参数的接受  只能接受ajax发送过来的json字符串
44          */
45         Map<String, String> map=new HashMap<String, String>(1);
46         System.out.println(user.getUsername());
47         map.put("success", "true");
48         return map;
49     }
50
51
52     @RequestMapping(value="/add2",method=RequestMethod.POST)
53     @ResponseBody
54     public Map<String, String> addUser2(HttpServletRequest request){
55         String data=request.getParameter("data");
56         JSONObject json=null;
57         try {
58             json=new JSONObject(data);
59             System.out.println(json.getString("username"));
60         } catch (JSONException e) {
61             e.printStackTrace();
62         }
63         Map<String, String> map=new HashMap<String, String>(1);
64         map.put("success", "true");
65         return map;
66     }
67
68     @RequestMapping(value="/add3",method=RequestMethod.POST)
69     @ResponseBody
70     public Map<String, String> addUser3(HttpServletRequest request){
71         String username=request.getParameter("username");
72         System.out.println(username);
73         Map<String, String> map=new HashMap<String, String>(1);
74         map.put("success", "true");
75         return map;
76     }
77 }

index.jsp

  1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2 <%
  3     String path = request.getContextPath();
  4     String basePath = request.getScheme() + "://"
  5             + request.getServerName() + ":" + request.getServerPort()
  6             + path + "/";
  7 %>
  8
  9 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 10 <html>
 11 <head>
 12 <base href="<%=basePath%>">
 13
 14 <title>My JSP ‘index.jsp‘ starting page</title>
 15 <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
 16 <script type="text/javascript">
 17 $(function(){
 18     $.ajax({
 19         type:"GET",
 20         contentType:"application/json",
 21         url:"user/list.do",
 22         dataType:"json",
 23         success:function(data){
 24             //alert(data);
 25             //data=eval("("+data+")");
 26             if(data&&data.success=="true"){
 27                 $("#info").html("共"+data.total+"条数据.<br/>");
 28                 $.each(data.data,function(i,item){
 29                     $("#info").append("编号:"+item.id+",姓名:"+item.username+",年龄:"+item.age);
 30                 });
 31             }
 32             else{
 33                 alert("获取数据有异常");
 34             }
 35         },
 36         error:function(){
 37             alert("提交失败!!!!!");
 38         }
 39     });
 40
 41     $("#submit1").click(function(){
 42         var data={};
 43         data.id=Number($("input[name=id]").val());
 44         data.username=$("input[name=username]").val();
 45         data.age=Number($("input[name=age]").val());
 46         $.ajax({
 47             type:"POST",
 48             data:JSON.stringify(data),
 49             url:"user/add1.do",
 50             contentType:"application/json",
 51             dataType:"json",
 52             success:function(data){
 53                 if(data&&data.success=="true"){
 54                     alert("添加成功!!!");
 55                 }
 56                 else{
 57                     alert("添加失败!!!");
 58                 }
 59             },
 60             error:function(){
 61                 alert("提交失败!!!!");
 62             }
 63         })
 64     });
 65
 66     $("#submit2").click(function(){
 67         var data={};
 68         data.id=Number($("input[name=id]").val());
 69         data.username=$("input[name=username]").val();
 70         data.age=Number($("input[name=age]").val());
 71         $.ajax({
 72             type:"POST",
 73             data:"data="+JSON.stringify(data),
 74             url:"user/add2.do",
 75             //contentType:"application/json",
 76             dataType:"json",
 77             success:function(data){
 78                 if(data&&data.success=="true"){
 79                     alert("添加成功!!!");
 80                 }
 81                 else{
 82                     alert("添加失败!!!");
 83                 }
 84             },
 85             error:function(){
 86                 alert("提交失败!!!!");
 87             }
 88         })
 89     });
 90
 91     $("#submit3").click(function(){
 92         var data="";
 93         data+="id="+$("input[name=id]").val();
 94         data+="&username="+$("input[name=username]").val();
 95         data+="&age="+$("input[name=age]").val();
 96         data+="&gg=tt=5";
 97         $.ajax({
 98             type:"POST",
 99             data:data,
100             url:"user/add3.do",
101             //contentType:"application/json",
102             dataType:"json",
103             success:function(data){
104                 if(data&&data.success=="true"){
105                     alert("添加成功!!!");
106                 }
107                 else{
108                     alert("添加失败!!!");
109                 }
110             },
111             error:function(){
112                 alert("提交失败!!!!");
113             }
114         })
115     });
116
117 })
118 </script>
119 </head>
120
121 <body>
122     编号:<input type="text" name="id" />
123     姓名:<input type="text" name="username" />
124     年龄:<input type="text" name="age" />
125     <input type="button" value="发送json字符串,后台可以用实体类接受" id="submit1" />
126     <input type="button" value="发送含有=和json字符串数据到后台," id="submit2" />
127     <input type="button" value="发送普通数据到后台," id="submit3" />
128     <hr />
129     <div id="info"></div>
130 </body>
131 </html>

时间: 2024-10-10 14:25:59

让我苦苦寻找的那段代码---springmvc的ajax前后台交互的相关文章

关于springmvc与ajax的交互-开发记录

每次都栽在这个地方,好衰! 在jsp页面的<form>标签设置了action="请求url" ,button那里用js进行监听,点击触发ajax方法,将前台数据传到后台Controller,然后页面不跳转,执行ajax的success回调方法,结果页面总是会出乎意料地跳转到action请求的url.看了半天才发现,虽然button点击会执行ajax,可是执行完还是会继续提交form到“请求url”,为了防止页面跳转,只能不提交form,即把action去掉.防止页面跳转的问

SpringMVC实现AJax以及RestFull分格

1.需要在web.xml中开启put,和delete的支持 <!-- 浏览器不支持put,delete等method,由该filter将/xxx?_method=delete转换为标准的http delete方法 --> <filter> <filter-name>hiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttp

SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 这一部分主要讲解SpringMVC如何处理Ajax请求,是首先要讲解一下jackson类库,可以帮助我们在java对象和json.xml数据之间的互相转换.他可以将控制器返回的对象直接转换成json数据,供客户端使用,客户端也可以传送json数据到服务

springMVC和Json的交互(就是后台解析json字符串和向前台传递json字符串的过程)

springMVC中和json的交互:主要分为两点,一是传递过来的是json字符串,springMVC会先进行解析,二是传递过来的是key:value那么springMVC可以不进行解析,这里的解析指的是json和java对象之间的转换 java对象:就是实体类的对象 首先先来看一张交互的图: 分析: 1.从这个图中我们可以看出来,前台请求的数据如果是json字符串,我们需要用@RequestBody先将json字符串转成java对象,然后前台传输的是java对象的时候就需要用@Response

SpringMVC——对Ajax的处理(包含 JSON 类型)

一.首先要搞明白的一些事情. 1.从客户端来看,需要搞明白: (1)要发送什么样格式的 JSON 数据才能被服务器端的 SpringMVC 很便捷的处理,怎么才能让我们写更少的代码,如何做好 JSON 数据和实体之间的对应. (2)如何组织这些发送的数据. 2.从服务器端来看,需要搞明白: (1)SpringMVC 如何返回 JSON 数据. (2)SpringMVC 如何处理请求的复杂数据. 3.$.ajax 的几个参数: (1)contentType: contentType: 'appli

关于SpringMvc的ajax请求的问题

利用springmvc接收前台ajax传过来的数据完成注册功能. 为了方便把,前台js的model和后台的user写成一致的功能.代码如下 前端: var User = function() { var id = null; var name = null; var password = null; var sex = null; var telephone = null; var role = null; var regist_time = null; var email_address =

修改springmvc返回ajax方式的json数据

现在由这么一个需求,就是修改几个功能模块的springmvc的ajax请求返回值(对返回值加密), 因为controller很多,而且以前抱着开闭原则,这里就选择使用拦截器的方式(是Filter不是spring的handlerFilter).废话不多少,上代码.(原始controller里返回的都是json数据). 修改web.xml 添加filter <filter> <filter-name>jsonFilter</filter-name> <filter-c

SpringMVC之ajax传递jason数据详解以及@RequestBody和@ResonseBody注解

最近在做ajax进行用户名校验时遇到了一些问题,在不断debug的过程中也加深了我对springMVC之ajax传递jason数据的理解,希望对有需要的小伙伴一些帮助~ 工具:IDEA 我们通过code来理解一下: 1.如下图时js代码:因为是对用户名校验,所以传入的数据只有用户名: PS:SpringMVC 通过ajax传参到后台时:因为@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象.然而在ajax请求往往传的都是Json对象,用 JSON.stringify

springmvc与ajax交互

Jsp页面: 需要引入jquery-1.10.2.min.js.json2.js.jquery.json-2.3.js三个文件 <%@ page contentType="text/html; charset=utf-8" language="java" errorPage=""%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/co