现在好多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后台的更多相关文章

  1. ajax传递json数据,springmvc后台就收json数据

    1.ajax数据的封装 var json = {"token":token};//封装json数据 $.ajax({ url:'', data:JSON.stringify(jso ...

  2. angular的$http.post()提交数据到Java后台接收不到参数值问题的解决方法

    本文地址:http://www.cnblogs.com/jying/p/6733408.html   转载请注明出处: 写此文的背景:在工作学习使用angular的$http.post()提交数据时, ...

  3. jQuery选取所有复选框被选中的值并用Ajax异步提交数据

    昨天和朋友做一个后台管理系统项目的时候涉及到复选框批量操作,如果用submit表单提交挺方便的,但是要实现用jQuery结合Ajax异步提交数据就有点麻烦了,因为我之前做过的项目中基本上没用Ajax来 ...

  4. from表单提交数据之后,后台对象接受不到值

    如果SSH框架下,前段页面通过from表单提交数据之后,在后台对象显示空值,也就是接收不到值得情况下.首先保证前段输入框有值,这个可以在提交的时候用jQuery的id或者name选择器alert弹出测 ...

  5. AJAX请求提交数据

    1,AJAX准备知识:JSON JSON指的是JavaScript对象表示方法(JavaScript Object Notation) JSON是轻量级的文本数据交换格式 JSON独立于语言 JSON ...

  6. ajax post 提交数据到服务端时中文乱码解决方法

    get 方式提交数据到服务端不会乱码,但对数据量有限制;post 可以提交大数据量,但中文会发生乱码,解决方法: 在JS上用使用 encodeURIComponent 对字符编码处理: student ...

  7. ajax提交数据到java后台,并且返回json格式数据前台接收处理值

    1.前台html页面.有一段代码如下: 账  户:  <input type="text" name="userName" id="userN& ...

  8. ajax 如何提交数据到后台jsp页面,以及提交完跳转到jsp页面

    我logincheck.jsp页面取传参数代码: String user=request.getParameter("user1"); String pwd=request.get ...

  9. Ajax Post提交事例及SpringMVC注解@RequestMapping取不到参数值解决办法

    var xmlHttp; //定义变量,用来创建xmlHttp对象 function ajaxfunction(url,onreadystatechangMethod,param){ // 创建xml ...

随机推荐

  1. 图解:平衡二叉树,AVL树

    学习过了二叉查找树,想必大家有遇到一个问题.例如,将一个数组{1,2,3,4}依次插入树的时候,形成了图1的情况.有建立树与没建立树对于数据的增删查改已经没有了任何帮助,反而增添了维护的成本.而只有建 ...

  2. Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之数字类型(number)

    Python 数字类型(number)用于存储数值.数据类型是不允许改变的,这就意味着如果改变number数据类型的值,将重新分配内存空间. 1.   一个简单的示例: # 以下实例在变量赋值时数字类 ...

  3. 17.3.12---socket

    1----如果要用python做一个服务器和客户端的通信程序,那么就一定得选择标准库中的scoket套接字模块,它支持多种网络协议:TCP/IP    ,ICMP/IP,            UDP ...

  4. JavaSE--【转】网络安全之证书、密钥、密钥库等名词解释

    转载 http://www.cnblogs.com/alanfang/p/5600449.html 那些证书相关的名词解释(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等 ...

  5. Lua与C++交互初探之C++调用Lua

    Lua与C++交互初探之C++调用Lua 自从学习了lua这个脚本语言之后,无时不想着将他与c/c++联系起来,看看他真正的威力.奈何水平有限,网上找的代码无论怎样都无法运行成功.我知道是我少了某一步 ...

  6. jenkins pipeline 之 deploy k8s 环境并发送邮件通知

    项目中有更新代码之后触发jenkins任务,部署好之后并发送邮件给发开人员 #!/usr/bin/env groovy Date date = new Date()def time = date.fo ...

  7. Django框架(一):MVC设计模式、Django简介

    1. MVC设计模式 MVC设计模式:Model-View-Controller简写. 最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪8 ...

  8. 编译x64c++出错,errorC1900:P1和P2之间 Il 不匹配问题

    搜索了下相关资料,有一个说法是编译x64时本地缺失一些东西,2015安装update3就行. 我的是2013update4,找了下最新的有update5,安装然而并没有什么用. 最后还是重新找对应版本 ...

  9. rsync+nfs+sersync实战案例

    回顾: 1.rsync 统一备份各个服务器的配置文件或重要文件 系统配置文件 日志文件 系统日志文件 messages.secure.cron 服务日志文件 access_log.access.log ...

  10. iOS 清理文件缓存

    本文摘自:<msp的昌伟哥哥-iOS开发-清理缓存功能的实现>摘下来的目的就是为了能够学习.还望看到文章的同学,前往原创的博客园.感谢msp的昌伟哥哥的分享精神. 移动应用在处理网络资源时 ...