关于前端传参数,后台接收的问题
1、通过ajax,示例: 传给后台的数据通过json封装起来,再用ajax将json传到后台,ajax是用到Jquery的ajax,在jsp先加入Jquery的引用 <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script> js传值的方法如下 function testAjax() { ? ?var users=[{ ? ? ? ?name:‘张三‘, ? ? ? ?age:‘21‘, ? ? ? ?birth:‘1994-12-12‘ ? ? }, ? ?{ ? ? ? ?name:‘李四‘, ? ? ? ?age:‘20‘, ? ? ? ?birth:‘1995-12-11‘ ? ? }, ? ?{ ? ? ? ?name:‘wangwu‘, ? ? ? ?birth:‘1995-12-11‘ ? ? }]; ? ?$.ajax({ ? ? ? ? type:‘POST‘, ? ? ? ? data:JSON.stringify(users), ? ? ? ? contentType?:‘application/json‘, ? ? ? ? dataType:‘json‘, ? ? ? ? url?:‘user/saveJsonUser.do‘, ? ? ? ? success?:function(data)?{ ? ? ? ? ? ? alert("OK"); ? ? ? ? }, ? ? ? ?error?:function(e)?{ ? ? ? ? ? alert("error"); ? ? ? ?}}) ? ?? } 后台处理:用到springmvc这里参数中要加上@RequestBody,@RequestBody将HTTP请求正文转换为适合的HttpMessageConverter对象。 @RequestMapping(value="/saveJsonUser.do",method=RequestMethod.POST) ? ? ? ? ? public Map saveJsonUser(@RequestBody User[]users){ ? ? ? ? ? ? ? ?for(Useru:users){ ? ? ? ? ? ? ? ? ? ?System.out.println(u.getName()+"??"+u.getAge()+"??"+u.getBirth()); ? ? ? ? ? ? ? ?} ? ? ? ? ? Map result=newHashMap(); ? ? ? ? ? result.put("success","123"); ? ? ? ? ? return result; } 2、在action中请求后台的方法。但是如果数值在传给后台之前需要校验,可以在form中的onsubmit调用js方法进行校验,js方法的返回值为true时,触发action,返回false时,action不起作用。 3、通过dom获取标签,触发标签的submit方法,直接提交数据到后台 function query()?{ ? ? var inputs?=?document.getElementsByName("sex");//对象是单选选项 ? ? for(var i?=?0;?i?<?inputs.length;?i++)?{ ? ? ? ?if(inputs[i].checked)?{//是否选中 ? ? ? ? ? var sex?=?inputs[i].value; ? ? ? ? ? document.getElementById("query").action?=?projectName+"/query.do?currentPage=1&stsex="+?sex; ? ? ? ? ? ?break; ? ? ? ?}else{ ? ? ? ? ?document.getElementById("query").action?=?projectName+"/query.do?currentPage=1"; ? ? ? } ?} ? ?document.getElementById("query").submit();//提交到后台 } ps:整理下工作中遇到的,欢迎大佬提出意见 1-后台接参 如果javabean里的属性是大写字母开头则会出现这种问题,请求的时候,json字符串是大写开头,MVC在接收的时候,根据对象的setter,getter属性认为字段都是小写的,所以没办法绑定。规范代码,属性也应该是小定字母开头 2-前端传参 不传参数,后台接收是null,传了不赋值,后台接是空串 所以,建议StringUtils.isNotBlank()判断? ? ps:null和""的区别 null表示一个字符串对象的引用为空,String a=null; ?声明了一个字符串变量a,变量a的引用为空。所以a没有指向任何的内存空间,在堆中也没有开辟任何的空间 空字符串表示一个字符串对象引用的值为空,String a =“” ?声明了一个字符串变量a,变量a的值为空。而a指向了空字符串的内存空间 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java解析xml之dom解析xml示例分享
- Java 8 – 使用BiPredicate进行过滤
- 将替代ListView的RecyclerView 的使用详解(一)
- java – 估计来自先验的其他概率的概率
- java – 调用Thread.isInterrupted()的性能成本是多少?
- java – 如何使用密码加密的私钥生成RSA keyPair?
- Java replaceAll()方法:替换所有匹配的字符串
- java – 如果String在列表中(在编译时给出):HashSet是最快
- LinkedHashSet迭代时的java.util.ConcurrentModificationEx
- 实例详解Java8函数式接口