一个普通的表单。
表单的代码如下:
<%@ page language="java" pageEncoding="UTF-8"%> <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" pageEncoding="UTF-8"%> <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" pageEncoding="UTF-8"% <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(){ //序列化表单元素,返回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"; }
相关推荐
在这个“springmvc 第二个例子”中,我们将探讨如何通过Spring MVC接收表单参数并执行重定向。 首先,让我们理解接收表单参数的过程。在Web应用中,用户通常通过HTML表单提交数据。Spring MVC提供了一个强大的机制...
在Controller中,可以通过方法参数来接收这些数据。例如,可以定义一个接受`MyPojo`类型参数的方法来处理提交的数据。 ```java @RequestMapping(value = "/submit", method = RequestMethod.POST) public String ...
总结,SpringMVC提供了一套完整的解决方案来处理表单提交,从接收请求到数据验证,再到视图呈现,整个过程简洁高效。理解并熟练运用这些概念和机制,能帮助开发者构建出更加健壮和可维护的Web应用。在实际开发中,应...
它需要指定`commandName`属性,该属性值对应于控制器方法参数的名称,用于绑定表单数据。例如: ```jsp ``` 3. ****:用于创建输入字段,自动绑定模型属性。如: ```jsp 请输入用户名"/> ``` `path`属性...
这样,我们就完成了从表单接收数据,将其保存到MySQL数据库的过程。需要注意的是,实际项目中还需要处理异常、数据验证、安全性等问题。此外,为了防止密码明文存储,通常会在保存前对密码进行加密。 总的来说,...
本文将为大家分享SpringMVC接收前台传递过来的值的实例,包括通过HttpServletRequest、参数名和@RequestParam注解三种方式。 一、通过HttpServletRequest获得前台传来的值 在SpringMVC中,可以通过...
在Spring MVC框架中,接收请求参数和向页面传递数据是两个关键操作,它们构成了Web应用中数据交互的基础。本文将详细解析如何在Spring MVC中实现这些功能。 首先,我们来看如何**接收请求参数**: 1. **使用...
在这个例子中,我们在重定向到"final-step"页面时,传递了一个"success"参数。 4. 视图解析: 最后,我们使用视图解析器(如InternalResourceViewResolver)来将视图名称映射到实际的JSP或HTML页面。例如,"step2...
在这个"SpringMVC+jsp之表单验证登录"的主题中,我们将探讨如何利用SpringMVC和JSP来实现用户登录功能,包括表单验证和交互流程。 首先,我们需要理解SpringMVC的核心组件。DispatcherServlet是入口点,负责接收...
本入门程序旨在帮助初学者理解并掌握SpringMVC的基本概念和工作流程,通过实现用户在前端页面注册信息并显示的功能,来深入剖析其核心机制。 ### 1. SpringMVC框架概述 SpringMVC是Spring框架的一部分,提供了一个...
SpringMVC提供了强大的数据绑定功能,可以自动将请求参数绑定到控制器方法的参数上,也可以将模型对象的属性绑定到HTML表单字段。这包括对基本类型、复杂类型以及集合类型的绑定。 7. **处理器拦截器** 处理器...
6. **数据绑定和验证**:SpringMVC提供数据绑定功能,可以直接将请求参数绑定到Controller方法的参数上。此外,还可以使用`@Valid`注解和JSR-303/JSR-349 Bean Validation进行表单验证。 7. **异常处理**:...
开发者需要在表单中设置`enctype="multipart/form-data"`,然后在控制器方法中声明`MultipartFile`参数来接收上传的文件。 三、多图上传 在本示例中,支持多图上传意味着用户可以一次选择并提交多个图片文件。这...
表单页面应包含一个`<form>`元素,其中的`action`属性指向控制器的提交方法。 ```html <!DOCTYPE html> 表单提交 表单提交示例 姓名: <input type="text" id="name" name="name" required><br> 邮箱: ...
在这个例子中,`@RequestParam("file") MultipartFile file`参数用于接收前端上传的文件。`MultipartFile`是Spring MVC提供的一个接口,用于处理多部分表单数据,如文件上传。 接下来,我们需要在前端使用Ajax来...
SpringMVC通过ModelAndView或直接返回字符串视图名来渲染对应的JSP页面。JSP页面中,我们使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来与后台数据交互。 4. **数据绑定**: ...
2. **参数绑定**:SpringMVC支持多种类型的参数绑定,包括简单类型、POJO(Plain Old Java Object)、集合类型等。 3. **自定义参数绑定**:对于更复杂的需求,开发者可以通过实现自定义的参数绑定器来处理。 #### ...
1. DispatcherServlet:它是SpringMVC的前端控制器,负责接收请求并根据配置的映射规则选择合适的处理器。 2. Controller:控制器是业务逻辑处理的地方,通常由实现了Controller接口或标注了@Controller注解的类来...
SpringMVC提供了多种方式来接收和处理POST请求中的数据。通常,我们可以创建一个与请求参数匹配的Java对象,然后使用`@ModelAttribute`注解将请求参数绑定到这个对象上: ```java @PostMapping("/submitData") ...