`

spring mvc 表单提交

阅读更多

转:http://www.cnblogs.com/luxh/archive/2013/03/14/2960152.html

 

一个普通的表单。

  表单的代码如下:

 

[java] view plaincopy
 
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>Add User</title>  
  8.   
  9.   
  10. <script type="text/javascript">  
  11.     //添加用户  
  12.     function addUser() {  
  13.         var form = document.forms[0];  
  14.         form.action = "${pageContext.request.contextPath}/user/addUser1";  
  15.         //form.action = "${pageContext.request.contextPath}/user/addUser2";  
  16.         //form.action = "${pageContext.request.contextPath}/user/addUser3";  
  17.         form.method = "post";  
  18.         form.submit();  
  19.     }  
  20. </script>  
  21.   
  22. </head>  
  23. <body>  
  24.     <form>  
  25.         <table>  
  26.             <tr>  
  27.                 <td>账号</td>  
  28.                 <td>  
  29.                     <input type="text" name="userName">  
  30.                 </td>  
  31.             </tr>  
  32.             <tr>  
  33.                 <td>密码</td>  
  34.                 <td>  
  35.                     <input type="password" name="password">  
  36.                 </td>  
  37.             </tr>  
  38.             <tr>  
  39.                 <td> </td>  
  40.                 <td>  
  41.                     <input type="button" value="提交" onclick="addUser()">  
  42.                 </td>  
  43.             </tr>  
  44.         </table>  
  45.     </form>  
  46. </body>  
  47. </html>  


1、直接把表单的参数写在Controller相应的方法的形参中

 

 

[java] view plaincopy
 
  1. @RequestMapping("/addUser1")  
  2.     public String addUser1(String userName,String password) {  
  3.         System.out.println("userName is:"+userName);  
  4.         System.out.println("password is:"+password);  
  5.         return "/user/success";  
  6.     }  


2、通过HttpServletRequest接收

 

 

[java] view plaincopy
 
  1. @RequestMapping("/addUser2")  
  2.     public String addUser2(HttpServletRequest request) {  
  3.         String userName = request.getParameter("userName");  
  4.         String password = request.getParameter("password");  
  5.         System.out.println("userName is:"+userName);  
  6.         System.out.println("password is:"+password);  
  7.         return "/user/success";  
  8.     }  

 

 

 3、通过一个bean来接收

    1)建立一个和表单中参数对应的bean

[java] view plaincopy
 
  1. public class User {  
  2.       
  3.     private String userName;  
  4.       
  5.     private String password;  
  6.   
  7.     public String getUserName() {  
  8.         return userName;  
  9.     }  
  10.   
  11.     public void setUserName(String userName) {  
  12.         this.userName = userName;  
  13.     }  
  14.   
  15.     public String getPassword() {  
  16.         return password;  
  17.     }  
  18.   
  19.     public void setPassword(String password) {  
  20.         this.password = password;  
  21.     }  
  22. }  


2)用这个bean来封装接收的参数

 

[java] view plaincopy
 
  1. @RequestMapping("/addUser3")  
  2.     public String addUser3(User user) {  
  3.         System.out.println("userName is:"+user.getUserName());  
  4.         System.out.println("password is:"+user.getPassword());  
  5.         return "/user/success";  
  6.     }  


 4、通过json数据接收

 

 

[java] view plaincopy
 
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>Add User</title>  
  8.   
  9. <script type="text/javascript" src="${pageContext.request.contextPath}/resource/script/jquery-1.9.1.min.js"></script>  
  10. <script type="text/javascript">  
  11.     $(document).ready(function(){  
  12.         $("#button_submit").click(function(){  
  13.             var name = $("#userName").val();  
  14.             var pass = $("#password").val();  
  15.               
  16.   
  17.             var user = {userName:name,password:pass};//拼装成json格式  
  18.               
  19.             $.ajax({  
  20.                 type:"POST",  
  21.                 url:"${pageContext.request.contextPath}/user/addUser4",  
  22.                 data:user,  
  23.                 success:function(data){  
  24.                     alert("成功");  
  25.                 },  
  26.                 error:function(e) {  
  27.                     alert("出错:"+e);  
  28.                 }  
  29.             });  
  30.         });  
  31.     });  
  32. </script>  
  33.   
  34. </head>  
  35. <body>  
  36.     <form>  
  37.         <table>  
  38.             <tr>  
  39.                 <td>账号</td>  
  40.                 <td>  
  41.                     <input type="text" id="userName" name="userName">  
  42.                 </td>  
  43.             </tr>  
  44.             <tr>  
  45.                 <td>密码</td>  
  46.                 <td>  
  47.                     <input type="password" id="password" name="password">  
  48.                 </td>  
  49.             </tr>  
  50.             <tr>  
  51.                 <td> </td>  
  52.                 <td>  
  53.                     <input type="button" id="button_submit" value="提交">  
  54.                 </td>  
  55.             </tr>  
  56.         </table>  
  57.     </form>  
  58. </body>  
  59. </html>  


依然可以使用bean来接收json数据

 

 

[java] view plaincopy
 
  1. @RequestMapping("/addUser4")  
  2.     public String addUser4(User user) {  
  3.         System.out.println("userName is:"+user.getUserName());  
  4.         System.out.println("password is:"+user.getPassword());  
  5.         return "/user/success";  
  6.     }  

 

 

5、使用jQuery的serializeArray() 方法序列化表单元素

    如果表单元素很多,手工拼装成json数据非常麻烦,可以使用jQuery提供的serializeArray()方法序列化表单元素,返回json数据结构数据。

[java] view plaincopy
 
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>Add User</title>  
  8.   
  9. <script type="text/javascript" src="${pageContext.request.contextPath}/resource/script/jquery-1.9.1.min.js"></script>  
  10. <script type="text/javascript">  
  11.     $(document).ready(function(){  
  12.         $("#button_submit").click(function(){  
  13.               
  14.             //序列化表单元素,返回json数据  
  15.             var params = $("#userForm").serializeArray();  
  16.               
  17.             //也可以把表单之外的元素按照name value的格式存进来  
  18.             //params.push({name:"hello",value:"man"});  
  19.               
  20.             $.ajax({  
  21.                 type:"POST",  
  22.                 url:"${pageContext.request.contextPath}/user/addUser5",  
  23.                 data:params,  
  24.                 success:function(data){  
  25.                     alert("成功");  
  26.                 },  
  27.                 error:function(e) {  
  28.                     alert("出错:"+e);  
  29.                 }  
  30.             });  
  31.         });  
  32.     });  
  33. </script>  
  34.   
  35. </head>  
  36. <body>  
  37.     <form id="userForm">  
  38.         <table>  
  39.             <tr>  
  40.                 <td>账号</td>  
  41.                 <td>  
  42.                     <input type="text" id="userName" name="userName">  
  43.                 </td>  
  44.             </tr>  
  45.             <tr>  
  46.                 <td>密码</td>  
  47.                 <td>  
  48.                     <input type="password" id="password" name="password">  
  49.                 </td>  
  50.             </tr>  
  51.             <tr>  
  52.                 <td> </td>  
  53.                 <td>  
  54.                     <input type="button" id="button_submit" value="提交">  
  55.                 </td>  
  56.             </tr>  
  57.         </table>  
  58.     </form>  
  59. </body>  
  60. </html>  

依然可以使用bean来接收json数据:

[java] view plaincopy
 
  1. @RequestMapping("/addUser5")  
  2.     public String addUser5(User user) {  
  3.         System.out.println("userName is:"+user.getUserName());  
  4.         System.out.println("password is:"+user.getPassword());  
  5.         return "/user/success";  
  6.     }  

 

分享到:
评论

相关推荐

    spring学习: spring mvc表单提交

    NULL 博文链接:https://shmilyaw-hotmail-com.iteye.com/blog/2244136

    SpringMVC之表单提交===②===单文件上传表单

    现在,当用户通过表单提交文件时,Spring MVC将调用`handleFileUpload`方法处理文件上传。你可以根据需要对文件进行进一步操作,如存储到服务器、数据库或其他服务。 总结,本文介绍了Spring MVC中单文件上传的基本...

    SpringMVC之表单提交===③===多文件上传表单

    在Spring MVC框架中,表单提交是Web应用中常见的功能之一,特别是在处理用户上传文件时。本篇将详细探讨如何实现多文件上传表单的功能,同时也会涉及到一些相关的源码和工具使用。 首先,让我们从基础开始。Spring ...

    Spring MVC表单标签库

    - 用户在前端通过表单提交数据。 - 数据被封装到指定的模型对象中并传递给后端控制器。 - 控制器处理请求,可能包括数据验证、业务逻辑处理等。 - 如果有错误,Spring MVC会自动将错误信息绑定到模型中,然后...

    spring mvc_05

    本教程将深入探讨非注解方式的Spring MVC表单提交,这种方式虽然在现代开发中不常用,但对于理解框架工作原理和历史背景仍然有价值。 一、Spring MVC概述 Spring MVC是Spring框架的一部分,专门用于构建基于模型-...

    最全最经典spring-mvc教程

    Spring MVC还支持数据绑定,自动将请求参数绑定到Java对象,这极大地简化了表单提交的处理。对于验证,Spring MVC提供了BindingResult和Validator接口,用于校验模型数据的正确性。 另外,Spring MVC与Spring框架的...

    spring mvc 4.0

    9. **多Part文件上传**:支持多文件上传,利用MultipartFile接口处理上传文件,便于处理复杂的表单提交场景。 10. **国际化支持**:通过消息源(MessageSource)和LocaleResolver,Spring MVC提供了强大的国际化...

    layui 图片上传+表单提交+ Spring MVC的实例

    在本实例中,我们主要探讨了如何利用Layui库进行图片上传,同时结合表单提交和Spring MVC框架实现后端处理。Layui是一个轻量级的前端组件库,提供了丰富的UI组件,包括上传功能。以下是具体的知识点: 1. **Layui...

    Mastering Spring MVC 4(2015.09)源码

    表单提交的数据可以直接绑定到控制器方法的参数上,通过@ModelAttribute注解实现。Hibernate Validator或JSR-303/JSR-349规范的验证可以集成到模型属性的验证中,确保输入数据的有效性。 拦截器(Interceptor)是...

    Spring MVC使用Demo

    Spring MVC是Spring框架的一个核心模块,专用于构建Web应用程序。这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式...

    spring MVC .docx

    10. **Conversion and Validation**: Spring MVC提供了数据转换和验证功能,如使用`@RequestParam`、`@PathVariable`注解自动转换参数,以及使用`@Valid`和`BindingResult`进行表单验证。 11. **Tiles or Layouts**...

    Spring MVC3复杂表单终极解决办法

    在处理复杂的表单提交时,Spring MVC 提供了多种解决方案。本文将深入探讨Spring MVC3在处理复杂表单场景下的最佳实践。 首先,我们要理解什么是复杂表单。复杂表单通常涉及到多个关联对象的提交,比如用户信息与...

    maven与spring MVC

    当用户提交表单时,Spring MVC会自动执行这些验证,如果数据无效,会返回错误信息。 DWR的集成: DWR可以与Spring MVC协同工作,提供富客户端的交互体验。DWR的配置可以通过Spring的ContextLoaderListener来加载,...

    Spring mvc 教程

    ### Spring MVC 教程知识点详解 #### Spring Web MVC 框架简介 Spring Web MVC 是 Spring Framework 的一个重要组成部分,主要用于构建基于 Java 的 Web 应用程序。它提供了一个灵活且强大的 MVC 实现,使得开发者...

    [免费]Spring MVC学习指南(高清)

    全书共计12章,分别从Spring框架、模型2和MVC模式、Spring MVC介绍、控制器、数据绑定和表单标签库、传唤器和格式化、验证器、表达式语言、JSTL、国际化、上传文件、下载文件多个角度介绍了Spring MVC。除此之外,...

    Spring MVC学习指南

    ### Spring MVC 学习指南详解 #### 一、Spring MVC 概述 Spring MVC 是 Spring 框架的一部分,主要用于构建基于 Model-View-Controller (MVC) 设计模式的 Web 应用程序。它提供了丰富的功能来简化 Web 开发过程,...

Global site tag (gtag.js) - Google Analytics