spring mvc 怎样接收formdata

 我来答
gcaijiuh90
2016-12-15 · TA获得超过248个赞
知道小有建树答主
回答量:337
采纳率:100%
帮助的人:244万
展开全部
  表单的代码如下:
  <%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Add User</title>
  <script type="text/javascript">
  //添加用户
  function addUser() {
  var form = document.forms[0];
  form.action = "${pageContext.request.contextPath}/user/addUser1";
  //form.action = "${pageContext.request.contextPath}/user/addUser2";
  //form.action = "${pageContext.request.contextPath}/user/addUser3";
  form.method = "post";
  form.submit();
  }
  </script>
  </head>
  <body>
  <form>
  <table>
  <tr>
  <td>账号</td>
  <td>
  <input type="text" name="userName">
  </td>
  </tr>
  <tr>
  <td>密码</td>
  <td>
  <input type="password" name="password">
  </td>
  </tr>
  <tr>
  <td> </td>
  <td>
  <input type="button" value="提交" onclick="addUser()">
  </td>
  </tr>
  </table>
  </form>
  </body>
  </html>
  1、直接把表单的参数写在Controller相应的方法的形参中
  @RequestMapping("/addUser1")
  public String addUser1(String userName,String password) {
  System.out.println("userName is:"+userName);
  System.out.println("password is:"+password);
  return "/user/success";
  }
  2、通过HttpServletRequest接收
  @RequestMapping("/addUser2")
  public String addUser2(HttpServletRequest request) {
  String userName = request.getParameter("userName");
  String password = request.getParameter("password");
  System.out.println("userName is:"+userName);
  System.out.println("password is:"+password);
  return "/user/success";
  }
  3、通过一个bean来接收
  1)建立一个和表单中参数对应的bean
  public class User {
  private String userName;
  private String password;
  public String getUserName() {
  return userName;
  }
  public void setUserName(String userName) {
  this.userName = userName;
  }
  public String getPassword() {
  return password;
  }
  public void setPassword(String password) {
  this.password = password;
  }
  }
  2)用这个bean来封装接收的参数
  @RequestMapping("/addUser3")
  public String addUser3(User user) {
  System.out.println("userName is:"+user.getUserName());
  System.out.println("password is:"+user.getPassword());
  return "/user/success";
  }
  4、通过json数据接收
  <%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Add User</title>
  <script type="text/javascript" src="${pageContext.request.contextPath}/resource/script/jquery-1.9.1.min.js"></script>
  <script type="text/javascript">
  $(document).ready(function(){
  $("#button_submit").click(function(){
  var name = $("#userName").val();
  var pass = $("#password").val();
  var user = {userName:name,password:pass};//拼装成json格式
  $.ajax({
  type:"POST",
  url:"${pageContext.request.contextPath}/user/addUser4",
  data:user,
  success:function(data){
  alert("成功");
  },
  error:function(e) {
  alert("出错:"+e);
  }
  });
  });
  });
  </script>
  </head>
  <body>
  <form>
  <table>
  <tr>
  <td>账号</td>
  <td>
  <input type="text" id="userName" name="userName">
  </td>
  </tr>
  <tr>
  <td>密码</td>
  <td>
  <input type="password" id="password" name="password">
  </td>
  </tr>
  <tr>
  <td> </td>
  <td>
  <input type="button" id="button_submit" value="提交">
  </td>
  </tr>
  </table>
  </form>
  </body>
  </html>
  依然可以使用bean来接收json数据
  @RequestMapping("/addUser4")
  public String addUser4(User user) {
  System.out.println("userName is:"+user.getUserName());
  System.out.println("password is:"+user.getPassword());
  return "/user/success";
  }
  5、使用jQuery的serializeArray() 方法序列化表单元素
  如果表单元素很多,手工拼装成json数据非常麻烦,可以使用jQuery提供的serializeArray()方法序列化表单元素,返回json数据结构数据。
  <%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Add User</title>
  <script type="text/javascript" src="${<a href="http://www.yingtaow.com/ekf/128.html" title="微信互动游戏开发玩转微信互动营销pageContext.request.contextPath}/resource/script/jquery-1.9.1.min.js"></script>
  <script type="text/javascript">
  $(document).ready(function(){
  $("#button_submit").click(function(){
  //序列化表单元素,返回json数据
  var params = $("#userForm").serializeArray();
  //也可以把表单之外的元素按照name value的格式存进来
  //params.push({name:"hello",value:"man"});
  $.ajax({
  type:"POST",
  url:"${pageContext.request.contextPath}/user/addUser5",
  data:params,
  success:function(data){
  alert("成功");
  },
  error:function(e) {
  alert("出错:"+e);
  }
  });
  });
  });
  </script>
  </head>
  <body>
  <form id="userForm">
  <table>
  <tr>
  <td>账号</td>
  <td>
  <input type="text" id="userName" name="userName">
  </td>
  </tr>
  <tr>
  <td>密码</td>
  <td>
  <input type="password" id="password" name="password">
  </td>
  </tr>
  <tr>
  <td> </td>
  <td>
  <input type="button" id="button_submit" value="提交">
  </td>
  </tr>
  </table>
  </form>
  </body>
  </html>
  依然可以使用bean来接收json数据:
  @RequestMapping("/addUser5")
  public String addUser5(User user) {
  System.out.println("userName is:"+user.getUserName());
  System.out.println("password is:"+user.getPassword());
  return "/user/success";
  }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式