(该资料是楼主复习时所用,很浅显,如果有哪些地方不正确,欢迎大家留言指出)
提交表单的时候,一个表单可能会有多个参数,为了将这些参数传到后台,有两种方法:
(1)通过表单id一个一个地将表单输入栏的value值取出,然后通过key:value的形式传到后台,在后台用requeset.getparameter(key),
当表单参数很多时,传入的过程很麻烦,传到后台后,对相应对象赋值也极为麻烦
(2)将表单整个序列化,打包成一个拥有多个key:value的集合,在后台用request.getparametermap()获取map集合
当表单参数过多时,使用表单序列化更为方便。
表单序列化的代码如下:
//通过表单的id用id选择器将表单序列化,并经由ajax传至后台
1 var formData = $("#registerForm").serialize(); 2 $.post("/userServlet?methodName=register", formData, function (result) { 3 alert("大帅哥") 4 console.log(result) 5 6 }, "json")
后台取出参数,并对相应对象进行赋值,代码如下:
//用map集合接收前台传递的参数 Map<String, String[]> map = request.getParameterMap(); //获取表单中特定的参数也可以根据表单中对应输入框的id进行取值 String check = request.getParameter("check");
User user =new User();
ResultInfo resultInfo =new ResultInfo(); try { //用beanutils.utils直接对相应对象进行赋值,会有报错,try catch或者throw掉 BeanUtils.populate(user, map); } catch (Exception e) { resultInfo.setFlag(false); resultInfo.setErrorMsg("注册失败,请刷新页面后重试"); }