SpringMVC与表单的交互方式

通过下面连接里的学习,记录一部分理解。

http://blog.csdn.net/lutinghuan/article/details/46820023

http://jxd-zxf.iteye.com/blog/2072300/

 

以带下标的数组形式提交表单到Controllor中,如果是<input type="text" />这种方式获取的值,空数据会使SpringMVC接受的参数不准确,并且以实际下标为准。

以隐藏域的形式可能会避免这种情况。

 

推荐使用Json字符串(标识符)提交

  1. var customerArray = new Array();  
  2. customerArray.push({name: "李四",pwd: "123"});   
  3. customerArray.push({name: "张三",pwd: "332"});   
  4. var user = {};  
  5. user.name = "李刚";  
  6. user.pwd = "888";  
  7. user. customers = customerArray;  
  8. $.ajax({  
  9.     url: "<%=path%>/catalog.do?fn=saveUsers",  //设置请求目标(地址,提交方式,参数类型,包括参数和返回类型)
  10.     type: "POST",  
  11.     dataType:"json", 
  12.     data: JSON.stringify(user),//将对象序列化成JSON字符串(标识符)  另一种方式是 $.toJSON()
  13.     contentType : 'application/json;charset=utf-8', //设置请求头信息  编码格式,因为@RequestBody默认接收的是enctype (MIME编码)
  14.     success: function(data){   //data是返回的数据
  15.         …  
  16.     },  
  17.     error: function(res){  
  18.         …  
  19.     }  
  20. });  

java代码

  @RequestBody User user

Controller中

  data: {"idList":idList,"isBatch":isBatch}

      @RequestParam("idList[]") List<String> idList,Boolean isBatch 

  1. userList.push({name: "李四",pwd: "123"});   
  2. userList.push({name: "张三",pwd: "332"}); 

      @RequestBody List<User> userList()

      @RequestBody List<Map<String,Object>> listMap

          User 等效于 Map<String,Object>

 

 

参考 (还未理解的内容)

      http://www.cnblogs.com/hgmyz/p/6283327.html

      http://www.cnblogs.com/qleelulu/archive/2008/04/21/1163021.html

 

 

 

 

其它一些 js 写法

  获取元素的数组(更具name属性)

  function fun() {

    obj = document.getElementsByName("name");

    var objArray = new Array(); // 创建一个数组, 另一种写法 objArray = [];

    for(o in obj){// o等效下标

      objArray.push(obj[o].value);

    }

  }

jQuery的一些注意内容

jQuery中,prop()是操作DOM属性,attr()是操作HTML属性。(来源 http://blog.csdn.net/css_styles/article/details/51719308)

prop通常用来设置元素本身就存在的一些属性。

attr通常用来操作一些自定义类型(范围大)

jQuery中getClass获取到的只是第一个元素,需要通过each获取所有的值

var jqArray = new jqArray(); // 另一种写法 var jqArray = [];

$(".className").each(

  function(key, value){

    jqArray[key] = $(this).val(); // 另一种写法 jqArray[key] = $(value).val();

  }

);

 

posted on 2017-03-31 23:05  Ioading  阅读(508)  评论(0)    收藏  举报

导航