ajax参数传递和后台获取方式-map,list,对象bean

2,130 阅读3分钟

参考: www.cnblogs.com/luzhanshi/p…

www.cnblogs.com/starksoft/p…

1.json格式用 JSONObject 接收

@ResponseBody@PostMapping("/sendFile")
public void sendFile(@RequestBody JSONObject jsonObject) {    
JSONArray ips=jsonObject.getJSONArray("ips");    
String version = jsonObject.getString("version");

2.用对象或者list 接收参数.

默认传入js对象和Java 后台接收对象属性相同即可
dataType:"json",
                data: JSON.stringify({ "AlbumName": "shanghai", "Entered": "5/9/2013" }),
                

3. 用Map接收ajax参数:

var map = '{"account":"' + account + '"}';
//设定一个事件触发ajax
$.ajax({
    type : 'POST',
    contentType : 'application/json;charset=utf-8',
    url : "/",
    processData : false,
    dataType : 'json',
    data : map,
    success : function(data) {
    
    Java端接收:
    public @ResponseBody Integer ajaxDemo(@RequestBody Map map) {
    
    
   

或者:


var CurrentQueryInfo = new Object();
CurrentQueryInfo.name = $("#currMetaFileName").val();
    CurrentQueryInfo.nameL1 = $("#nameL1").val();
    $.ajax({  //注意这里不指定 dataType 为json
            type: "post",
            url: "/getMetadatasCreateL1.do",
            data: CurrentQueryInfo,
            async: false,
            success: function (data) {
            
            
     public MetadataCreate4Return getMetadatasCreateL1(@RequestParam Map<String, String> map) {
var CurrentQueryInfo = new Object();    
CurrentQueryInfo.start = start;    
CurrentQueryInfo.end = end;}


function initAsyncPagination(id) {    
var $el = $('#' + id);    // 请求接口    
function makePagination(curNum, selectedNum) { // 第几页,每页条数   
getQueryInfo((curNum - 1) * selectedNum, selectedNum);    

$.ajax({            
type: "post",            
url: "/getMetadatasCreate.do",            
data: CurrentQueryInfo,            
async: false,            
success: function (data) {

相同name 在input表单中, 在action是可以通过 request获得name对应数组的 尝试没有通过

$.ajax({
            url: "/editMetaL1TabSave.do",
            type: "POST",
            data:$("form").serialize(),
            processData: false,  // 告诉jQuery不要去处理发送的数据
            contentType: false,   // 告诉jQuery不要去设置Content-Type请求头
            dataType: 'json',

使用formData类序列化form表单所有待提交label

blog.csdn.net/zqian1994/a…

// 获取页面已有的一个form表单
var form = document.getElementById("myForm");
// 用表单来初始化
var formData = new FormData(form);
// 我们可以根据name来访问表单中的字段
var name = formData.get("name"); // 获取名字
var psw = formData.get("psw"); // 获取密码
// 当然也可以在此基础上,添加其他数据
formData.append("token","kshdfiwi3rh");

获取数据,打印数据, set append 增加formdata内容, 多个相同name如何传递??

//提交前打印所有formData参数, action层获取参数 request 和默认javabean,或者Map
for (var [a, b] of fd.entries()) {
            console.log("参数fd."+a, "="+b);
         }
         
         
//通过append(key, value)来添加数据,如果指定的key不存在则会新增一条数据,如果key存在,则添加到数据的末尾
formData.append("k1", "v1");
formData.append("k1", "v2");
formData.append("k1", "v3");

获取值时方式及结果如下

formData.get("k1"); // "v1"
formData.getAll("k1"); // ["v1","v2","v3"]

JS replace()方法替换变量(可以对变量进行全文替换)

转至:blog.sina.com.cn/s/blog_6552…

我要用 JS 替换一个多行文本的关键字 正常,没有变量的时候应该是这样: 把 a 替换成 b: string.replace("a","b"); 以上只能替换第一个匹配的,要全文匹配应该用正则表达式: string.replace(/a/g,"b"); 正则加个参数 g ,表示全文匹配。 但现在,我要替换的不是 a 这个字符了,而是从外面传进来的一个变量: var key; 我可以这么写: string.replace(key,"b"); 这只能替换第一个匹配的,要全文匹配就遇到难题了: string.replace(/key/g,"b"); 这样写是不行的,变量 key 传不到正则里面去。。。头疼啊 于是我在网上找啊找。 我先找 replace 替换变量,有说用加号拼接正则的,好像也失败了。。。看得我晕晕乎乎的。 我无意中发现 java 有个 replaceAll() 方法,我想如果可以这样不就好了吗: string.replaceAll(key,"b"); 这样就不用正则了,变量就能进去了。 然后发现 JS 里没有 replaceAll() 这个方法。。 我靠,,然后我又查 JS 怎么能够实现 replaceAll 这个方法,网上各种自己写函数啊,,看得我也晕晕乎乎的。 后来我的思路又回到了怎样把变量传到 replace() 方法里面去。 哎~功夫不负有心人,看到一篇文章: www.jb51.net/article/402… 文章的最后,给出了 JS 里面正则表达式的另一个使用方法,那就是: string.replace(new RegExp(key,'g'),"b"); 这里,利用 JS 的 RegExp 对象,将 g 参数单拿了出来,同时,正则的内容可以用变量来代替了!!!! 干的漂亮!!!!