spring mvc 接收表单 bean

简介:

spring MVC如何接收表单bean 呢?

之前项目中MVC框架一直用struts2,所以我也就按照struts2 的思维来思考

页面loginInput.jsp:

Html代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  3.     pageEncoding="UTF-8"%>  
  4. <%  
  5.     String path = request.getContextPath();  
  6.     String basePath = request.getScheme() + "://"  
  7.             + request.getServerName() + ":" + request.getServerPort()  
  8.             + path + "/";  
  9. %>  
  10. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  11. <html xmlns="http://www.w3.org/1999/xhtml">  
  12. <head>  
  13. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
  14. <title>Insert title here</title>  
  15. </head>  
  16. <body>  
  17.     <center>  
  18.         <font color="red" >${message }</font>  
  19.   
  20.         <form action="<%=path %>/user/loginVerify">  
  21.             <table>  
  22.   
  23.                 <tr>  
  24.                     <td>身份证:</td>  
  25.                     <td> <input type="text" name="user.identity"  /> </td>  
  26.                 </tr>  
  27.                 <tr>  
  28.                     <td>用户编号:</td>  
  29.                     <td><input type="text" name="userstudentID"  /> </td>  
  30.                 </tr>  
  31.                 <tr>  
  32.                     <td colspan="2">  
  33.                     <input type="submit"  value="login"/>  
  34.                     </td>  
  35.                 </tr>  
  36.             </table>  
  37.         </form>  
  38.           
  39.     </center>  
  40.       
  41. </body>  
  42. </html>  

 控制器LoginController 中登录的方法:

Java代码   收藏代码
  1. /*** 
  2.      * 校验登录用户 
  3.      *  
  4.      * @param session 
  5.      * @param user 
  6.      * @return 
  7.      * @throws UnsupportedEncodingException 
  8.      * @throws Exception 
  9.      */  
  10.     @RequestMapping(value = "/loginVerify")  
  11.     public String login(User user, HttpSession session,  
  12.             Map<String, Object> map,Model model) throws UnsupportedEncodingException,  
  13.             Exception {  
  14.         User user2 = null;  
  15.         if (user.getIdentity() == null) {  
  16.             map.put("message""请输入身份证");  
  17.             return "loginInput";  
  18.         }  
  19.         map.put("identity", user.getIdentity());  
  20.         model.addAttribute("identity", user.getIdentity());  
  21.         System.out.println("identity:"+session.getAttribute("identity"));  
  22.         user2 = this.userDao.getByIdentityAndStudentID(new User(user.getIdentity(),  
  23.                 user.getStudentID()));  
  24.         System.out.println("user2:" + user2);  
  25.         if (user2 != null) {  
  26.             return "welcome";  
  27.         } else {  
  28.             map.put("message""身份证和用户编号有误,请重新登录");  
  29.             return "loginInput";  
  30.         }  
  31.   
  32.     }  

 我认为页面表单中name为user.identity 和user.studentID的元素会自动注入到上述方法的变量User user 中,结果没有!!!?

实体类User

Java代码   收藏代码
  1. package com.springmvc.entity;  
  2.   
  3. import javax.persistence.Entity;  
  4. import javax.persistence.GeneratedValue;  
  5. import javax.persistence.Id;  
  6.   
  7. /*** 
  8.  * father class 
  9.  * @author huangwei 
  10.  * 
  11.  */  
  12. @Entity  
  13. public  class User {  
  14.     private int id;  
  15.     /** 
  16.      * 身份证 
  17.      */  
  18.     private String identity;  
  19.     /*** 
  20.      * 用户编号 
  21.      */  
  22.     private String studentID;  
  23.     private String username;  
  24.       
  25.     public User() {  
  26.         super();  
  27.     }  
  28.   
  29.     public User(String identity, String studentID) {  
  30.         super();  
  31.         this.identity = identity;  
  32.         this.studentID = studentID;  
  33.     }  
  34.   
  35.     @Id  
  36.     @GeneratedValue  
  37.     public int getId() {  
  38.         return id;  
  39.     }  
  40.     public void setId(int id) {  
  41.         this.id = id;  
  42.     }  
  43.     public String getIdentity() {  
  44.         return identity;  
  45.     }  
  46.   
  47.     public void setIdentity(String identity) {  
  48.         this.identity = identity;  
  49.     }  
  50.   
  51.     public String getStudentID() {  
  52.         return studentID;  
  53.     }  
  54.     public void setStudentID(String studentID) {  
  55.         this.studentID = studentID;  
  56.     }  
  57.   
  58.     public String getUsername() {  
  59.         return username;  
  60.     }  
  61.   
  62.     public void setUsername(String username) {  
  63.         this.username = username;  
  64.     }  
  65.       
  66. }  

 

原来,spring MVC 跟struts2的注入方式不一样!!

后来我把页面中的name属性改为identity 和studentID 就好了:

<tr>

<td>身份证:</td>

<td> <input type="text" name="identity"  /> </td>

</tr>

<tr>

<td>用户编号:</td>

<td><input type="text" name="studentID"  /> </td>

</tr>

 

这就是spring MVC与struts2 ioc不同的地方!

相关文章
|
1月前
|
XML 安全 Java
|
13天前
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
|
13天前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
|
18天前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
54 6
|
20天前
|
XML Java 数据格式
🌱 深入Spring的心脏:Bean配置的艺术与实践 🌟
本文深入探讨了Spring框架中Bean配置的奥秘,从基本概念到XML配置文件的使用,再到静态工厂方式实例化Bean的详细步骤,通过实际代码示例帮助读者更好地理解和应用Spring的Bean配置。希望对你的Spring开发之旅有所助益。
84 3
|
21天前
|
设计模式 前端开发 Java
步步深入SpringMvc DispatcherServlet源码掌握springmvc全流程原理
通过对 `DispatcherServlet`源码的深入剖析,我们了解了SpringMVC请求处理的全流程。`DispatcherServlet`作为前端控制器,负责请求的接收和分发,处理器映射和适配负责将请求分派到具体的处理器方法,视图解析器负责生成和渲染视图。理解这些核心组件及其交互原理,有助于开发者更好地使用和扩展SpringMVC框架。
33 4
|
2月前
|
缓存 Java Spring
实战指南:四种调整 Spring Bean 初始化顺序的方案
本文探讨了如何调整 Spring Boot 中 Bean 的初始化顺序,以满足业务需求。文章通过四种方案进行了详细分析: 1. **方案一 (@Order)**:通过 `@Order` 注解设置 Bean 的初始化顺序,但发现 `@PostConstruct` 会影响顺序。 2. **方案二 (SmartInitializingSingleton)**:在所有单例 Bean 初始化后执行额外的初始化工作,但无法精确控制特定 Bean 的顺序。 3. **方案三 (@DependsOn)**:通过 `@DependsOn` 注解指定 Bean 之间的依赖关系,成功实现顺序控制,但耦合性较高。
实战指南:四种调整 Spring Bean 初始化顺序的方案
|
1月前
|
安全 Java 开发者
Spring容器中的bean是线程安全的吗?
Spring容器中的bean默认为单例模式,多线程环境下若操作共享成员变量,易引发线程安全问题。Spring未对单例bean做线程安全处理,需开发者自行解决。通常,Spring bean(如Controller、Service、Dao)无状态变化,故多为线程安全。若涉及线程安全问题,可通过编码或设置bean作用域为prototype解决。
35 1
|
2月前
|
安全 Java 数据安全/隐私保护
如何使用Spring Boot进行表单登录身份验证:从基础到实践
如何使用Spring Boot进行表单登录身份验证:从基础到实践
54 5
|
2月前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
151 2