Ajax如何提交数据到springMVC后台
现在好多web项目实现前段和后端分离,实现前端和后端技术人员,使他们加快开发,减少沟通上的问题,后台只需要提供访问接口,而前天只需要调用提供的接口即可。减少前后端的沟通上的成本
本项目是开发中发现ajax提交数据产生问题时,写的一个总结。实现ajax的提交数据时的技术问题
本项目目录树:
本项目就一个Controller,AjaxController.java的代码如下:
package com.myshiro.controller; import java.io.IOException;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 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.ResponseBody; import com.alibaba.fastjson.JSONObject; @Controller
public class AjaxController { @RequestMapping(value="/ajaxString")
public void a(String sa, String sb, HttpServletRequest request, HttpServletResponse response)
throws IOException{
response.getWriter().println("sa: " + sa + ", sb: " + sb);
} @RequestMapping(value="/ajaxInteger")
public void b(Integer ia, Integer ib, HttpServletRequest request, HttpServletResponse response)
throws IOException{
response.getWriter().println("ia: " + ia + ", ib: " + ib);
} //@RequestBody JSONObject json 把ajax提交的josn参数绑定到JSONObject类型的josn中,可以用来接受List,Map,Date等格式
//然后通过JSONObject的方法进行类型转换
@RequestMapping(value="/ajaxList")
public void d(@RequestBody JSONObject json, HttpServletRequest request, HttpServletResponse response)
throws IOException{
String gid = json.getString("gid");
String myList = json.getString("myList");
//转换成List类型
List<String> myList1 = json.getObject("myList", List.class);
System.out.println(myList1.size()); //转换成Map类型
Map<String, String> myMap = json.getObject("myMap", Map.class);
Set<String> myMapKeySet = myMap.keySet();
for(Iterator<String> iter = myMapKeySet.iterator(); iter.hasNext(); ){
String index = iter.next();
System.out.println("key: " + index + " value: " + myMap.get(index));
} System.out.println(myList);
// response.getWriter().println("gid: " + gid + ", db: " + myList);
response.getWriter().print(json);
}
}
index.jsp前段页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath %>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ajax测试</title>
</head>
<body> <div>
<button type="button" onclick="ajaxString()">ajaxString</button>
<button type="button" onclick="ajaxInteger()">ajaxInteger</button>
<button type="button" onclick="ajaxList()">ajaxList</button>
</div> <script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
function ajaxString(){
$.ajax({
type: 'post',
url: 'ajaxString',
data: {sa: 'ajaxString_a', sb: 'ajaxString_b'},
success: function(res){
alert(res);
}
});
} function ajaxInteger(){
$.ajax({
type: 'post',
url: 'ajaxInteger',
data: {ia: 10010, ib: 10012},
success: function(res){
alert(res);
}
});
} function ajaxList(){
var myList = new Array();
myList[0] = 'parameter_1';
myList[1] = 'parameter_2';
myList[2] = '参数3';
var myMap = {
'key1': 'value1',
'key2': 'value2',
'key3': 'value3'
}
$.ajax({
type: 'post',
url: 'ajaxList',
dataType: 'json', //表示返回值的数据类型
contentType: 'application/json;charset=UTF-8', //内容类型
traditional: true, //使json格式的字符串不会被转码
data: JSON.stringify({gid: 10001, myList: myList, myMap: myMap}),
success: function(res){
alert(res.gid);
alert(res.myList);
}
});
}
</script>
</body>
</html>
本项目实现了ajax提交简单数据,提交jquery数组,字典等数据类型时,springMVC如何接受这些参数
Ajax如何提交数据到springMVC后台的更多相关文章
- ajax传递json数据,springmvc后台就收json数据
1.ajax数据的封装 var json = {"token":token};//封装json数据 $.ajax({ url:'', data:JSON.stringify(jso ...
- angular的$http.post()提交数据到Java后台接收不到参数值问题的解决方法
本文地址:http://www.cnblogs.com/jying/p/6733408.html 转载请注明出处: 写此文的背景:在工作学习使用angular的$http.post()提交数据时, ...
- jQuery选取所有复选框被选中的值并用Ajax异步提交数据
昨天和朋友做一个后台管理系统项目的时候涉及到复选框批量操作,如果用submit表单提交挺方便的,但是要实现用jQuery结合Ajax异步提交数据就有点麻烦了,因为我之前做过的项目中基本上没用Ajax来 ...
- from表单提交数据之后,后台对象接受不到值
如果SSH框架下,前段页面通过from表单提交数据之后,在后台对象显示空值,也就是接收不到值得情况下.首先保证前段输入框有值,这个可以在提交的时候用jQuery的id或者name选择器alert弹出测 ...
- AJAX请求提交数据
1,AJAX准备知识:JSON JSON指的是JavaScript对象表示方法(JavaScript Object Notation) JSON是轻量级的文本数据交换格式 JSON独立于语言 JSON ...
- ajax post 提交数据到服务端时中文乱码解决方法
get 方式提交数据到服务端不会乱码,但对数据量有限制;post 可以提交大数据量,但中文会发生乱码,解决方法: 在JS上用使用 encodeURIComponent 对字符编码处理: student ...
- ajax提交数据到java后台,并且返回json格式数据前台接收处理值
1.前台html页面.有一段代码如下: 账 户: <input type="text" name="userName" id="userN& ...
- ajax 如何提交数据到后台jsp页面,以及提交完跳转到jsp页面
我logincheck.jsp页面取传参数代码: String user=request.getParameter("user1"); String pwd=request.get ...
- Ajax Post提交事例及SpringMVC注解@RequestMapping取不到参数值解决办法
var xmlHttp; //定义变量,用来创建xmlHttp对象 function ajaxfunction(url,onreadystatechangMethod,param){ // 创建xml ...
随机推荐
- 17.3.12----math模块
1----math模块提供很多的数学运算功能: math.pi 圆周率 math.e 那个自然常熟就是e^x,的这个e math.ceil(i) 对i向上取整 math.floor(i) ...
- PAT甲级——1061 Dating (20分)
Sherlock Holmes received a note with some strange strings: Let's date! 3485djDkxh4hhGE 2984akDfkkkkg ...
- oracle sql语句学习(一)
oraclexe 11.0.2.0 输出到文件 SQL>spool /*完整路径*/; SQL>spool off; 多表自然链接 select spj.sno from spj join ...
- 一个理解基本RCNN的简单例子
对于一个最简单的RNN网络https://github.com/Teaonly/beginlearning/ """Minimal character-level Van ...
- springboot学习笔记:8. springboot+druid+mysql+mybatis+通用mapper+pagehelper+mybatis-generator+freemarker+layui
前言: 开发环境:IDEA+jdk1.8+windows10 目标:使用springboot整合druid数据源+mysql+mybatis+通用mapper插件+pagehelper插件+mybat ...
- 题解-------CF372C Watching Fireworks is Fun
传送门 一道有趣的DP 题目大意 城镇中有$n$个位置,有$m$个烟花要放.第$i$个烟花放出的时间记为$t_{i}$,放出的位置记为$a_{i}$.如果烟花放出的时候,你处在位置$x$,那么你将收获 ...
- POJ-1679 The Unique MST(次小生成树、判断最小生成树是否唯一)
http://poj.org/problem?id=1679 Description Given a connected undirected graph, tell if its minimum s ...
- Kafka及周边深度了解
之前介绍了使用官方脚本自动化启动一个Fabric网络,并且所有的证书都是通过官方的命令行工具cryptogen直接生成网络中的所有节点的证书.在开发环境可以这么简单进行,但是生成环境下还是需要我们自定 ...
- Flink(三) —— 运行架构
Flink运行时组件 JobManager 作业管理器 TaskManager 任务管理器 ResourceManager 资源管理器 Dispatcher 分发器 任务提交流程 任务调度原理 Job ...
- 学习4412开发板gdb和gdbserver的调试
因为有很多的小伙伴是从单片机转过来的,用惯了单片机上的JLINK调试程序,换到Linux上非常的不习惯.确实,如果能设置断点,单步调试,查看变量,那确实是太爽了,那么在我们的Linux可以做到吗,答案 ...