让我苦苦寻找的那段代码---springmvc的ajax前后台交互
导入jar包:
web.xml
<servlet>
<servlet-name>spmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
在web.xml同级目录下建立spmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<context:component-scan base-package="controller" />
<context:annotation-config />
<mvc:annotation-driven />
</beans>
实体类User.java
package Model; public class User {
private int id;
private String username;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} }
Action代码:
package controller; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; import Model.User; @Controller
@RequestMapping("/user")
public class DemoController {
@RequestMapping(value="/list",method=RequestMethod.GET)
@ResponseBody
public Map<String, Object> getUserList(){
List<User> list=new ArrayList<User>();
User user=new User();
user.setId(1);
user.setUsername("guoyansi");
user.setAge(25);
list.add(user);
Map<String, Object> map=new HashMap<String, Object>(3);
map.put("total", 1);
map.put("data", list);
map.put("success", "true");
return map;
} @RequestMapping(value="/add1",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> addUser1(@RequestBody User user){
/**
* 这种实体类参数的接受 只能接受ajax发送过来的json字符串
*/
Map<String, String> map=new HashMap<String, String>(1);
System.out.println(user.getUsername());
map.put("success", "true");
return map;
} @RequestMapping(value="/add2",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> addUser2(HttpServletRequest request){
String data=request.getParameter("data");
JSONObject json=null;
try {
json=new JSONObject(data);
System.out.println(json.getString("username"));
} catch (JSONException e) {
e.printStackTrace();
}
Map<String, String> map=new HashMap<String, String>(1);
map.put("success", "true");
return map;
} @RequestMapping(value="/add3",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> addUser3(HttpServletRequest request){
String username=request.getParameter("username");
System.out.println(username);
Map<String, String> map=new HashMap<String, String>(1);
map.put("success", "true");
return map;
}
}
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(function(){
$.ajax({
type:"GET",
contentType:"application/json",
url:"user/list.do",
dataType:"json",
success:function(data){
//alert(data);
//data=eval("("+data+")");
if(data&&data.success=="true"){
$("#info").html("共"+data.total+"条数据.<br/>");
$.each(data.data,function(i,item){
$("#info").append("编号:"+item.id+",姓名:"+item.username+",年龄:"+item.age);
});
}
else{
alert("获取数据有异常");
}
},
error:function(){
alert("提交失败!!!!!");
}
}); $("#submit1").click(function(){
var data={};
data.id=Number($("input[name=id]").val());
data.username=$("input[name=username]").val();
data.age=Number($("input[name=age]").val());
$.ajax({
type:"POST",
data:JSON.stringify(data),
url:"user/add1.do",
contentType:"application/json",
dataType:"json",
success:function(data){
if(data&&data.success=="true"){
alert("添加成功!!!");
}
else{
alert("添加失败!!!");
}
},
error:function(){
alert("提交失败!!!!");
}
})
}); $("#submit2").click(function(){
var data={};
data.id=Number($("input[name=id]").val());
data.username=$("input[name=username]").val();
data.age=Number($("input[name=age]").val());
$.ajax({
type:"POST",
data:"data="+JSON.stringify(data),
url:"user/add2.do",
//contentType:"application/json",
dataType:"json",
success:function(data){
if(data&&data.success=="true"){
alert("添加成功!!!");
}
else{
alert("添加失败!!!");
}
},
error:function(){
alert("提交失败!!!!");
}
})
}); $("#submit3").click(function(){
var data="";
data+="id="+$("input[name=id]").val();
data+="&username="+$("input[name=username]").val();
data+="&age="+$("input[name=age]").val();
data+="&gg=tt=5";
$.ajax({
type:"POST",
data:data,
url:"user/add3.do",
//contentType:"application/json",
dataType:"json",
success:function(data){
if(data&&data.success=="true"){
alert("添加成功!!!");
}
else{
alert("添加失败!!!");
}
},
error:function(){
alert("提交失败!!!!");
}
})
}); })
</script>
</head> <body>
编号:<input type="text" name="id" />
姓名:<input type="text" name="username" />
年龄:<input type="text" name="age" />
<input type="button" value="发送json字符串,后台可以用实体类接受" id="submit1" />
<input type="button" value="发送含有=和json字符串数据到后台," id="submit2" />
<input type="button" value="发送普通数据到后台," id="submit3" />
<hr />
<div id="info"></div>
</body>
</html>
让我苦苦寻找的那段代码---springmvc的ajax前后台交互的更多相关文章
- 关于springmvc与ajax的交互-开发记录
每次都栽在这个地方,好衰! 在jsp页面的<form>标签设置了action="请求url" ,button那里用js进行监听,点击触发ajax方法,将前台数据传到后台 ...
- SpringMVC与Ajax交互
1 springmvc和ajax的交互 1.1 请求字符串响应json 客户端发送的数据:key=value&key1=value1 响应回来:json 1.1.1json的支持jar包 1 ...
- SpringMVC和AJAX交互
在实际开发中我们经常需要前后台交互,那么springmvc与ajax之间交互这里记录下在实际开发中遇到的细节问题. jsp页面: <fieldset id="login" s ...
- springMvc 使用ajax上传文件,返回获取的文件数据 附Struts2文件上传
总结一下 springMvc使用ajax文件上传 首先说明一下,以下代码所解决的问题 :前端通过input file 标签获取文件,通过ajax与后端交互,后端获取文件,读取excel文件内容,返回e ...
- SpringMVC——对Ajax的处理(包含 JSON 类型)
一.首先要搞明白的一些事情. 1.从客户端来看,需要搞明白: (1)要发送什么样格式的 JSON 数据才能被服务器端的 SpringMVC 很便捷的处理,怎么才能让我们写更少的代码,如何做好 JSON ...
- JAVA配置&注解方式搭建简单的SpringMVC前后台交互系统
前面两篇文章介绍了 基于XML方式搭建SpringMVC前后台交互系统的方法,博文链接如下: http://www.cnblogs.com/hunterCecil/p/8252060.html htt ...
- Ajax json交互和SpringMVC中@RequestBody
Ajax json交互和SpringMVC中@RequestBody 标签: 背景 自己提供出去得接口中参数设置为@RequestBody VipPromotionLog vipPromotionLo ...
- SpringMVC实现AJax以及RestFull风格
RestFull风格就是url路径中不能出现?不能带参数,如https://www.baidu.com/user/item/1234这个格式,也叫url资源定位 1.需要在web.xml中开启put, ...
- Springmvc中ajax与jason应用
Springmvc中ajax与jason应用 相关依赖包 json数据转换的jar包 jackson-annotations-2.5.4 jackson-core-2.5.4 jackson-data ...
随机推荐
- SmartDo数据挖掘思路
SmartDo数据挖掘思路 数据挖掘部分: 数据挖掘的主要网址为: https://www.amazon.com/Best-Sellers/zgbs 挖掘部分为网址左边的入口,大约20多个,其中页面分 ...
- http meta
定义和用法 <meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词. <meta> 标签位于文档的头部,不包含任 ...
- oracle数据库数据导出和导入
oracle的客户端里面的bin下面有两个可执行文件,名称分别为exp.exe和imp.exe. 他俩的用途就是导出和导入数据用的. 全库 导出:exp 用户名/密码@数据库名 full=y file ...
- JSP MVC
Java的MVC玩起来比.Net的有意思,因为每一步你都知道它是如何运作的,都由自己去实现.而在.Net的MVC中,你却不知道一个Controller是如何对应到View中的,因为MS给了你IDE上的 ...
- C# Tips: 将 VS2012 / VS2013 的.sln文件、project文件转换成 VS2010格式
原来有一些VS2013的工程文件(.sln..csproj),使用.Net 4.0.现需要将它们转换成VS2010格式. 经实验,办法如下: (1) 在Solution文件(.sln)中: 把文件头部 ...
- VS2012远程调试(winform+web 远程调试)
VS2012远程调试 一.调试WinFrom 程序 安装rtools_setup_x64 下载 配置Remote 启动Remote debugger 默认端口4016,选择工具-〉选项,选择 无身 ...
- 51nod1039 x^3 mod p
X*X*X mod P = A,其中P为质数.给出P和A,求<=P的所有X. Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 1000) 第2 ...
- ab压测参数说明
ab是apache自带的压力测试工具,非常实用.ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也 ...
- Centos7安装Zabbix3.0
1.安装服务器端包 #rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch. ...
- android学习笔记八——SeekBar
SeekBar——拖动条 拖动条(SeekBar)组件与ProgressBar水平形式的显示进度条类似,不过其最大的区别在于,拖动条可以由用户自己进行手工的调节,例如当用户需要调整播放器音量或者电影的 ...