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不同的地方!

相关文章
|
22天前
|
缓存 Java Spring
实战指南:四种调整 Spring Bean 初始化顺序的方案
本文探讨了如何调整 Spring Boot 中 Bean 的初始化顺序,以满足业务需求。文章通过四种方案进行了详细分析: 1. **方案一 (@Order)**:通过 `@Order` 注解设置 Bean 的初始化顺序,但发现 `@PostConstruct` 会影响顺序。 2. **方案二 (SmartInitializingSingleton)**:在所有单例 Bean 初始化后执行额外的初始化工作,但无法精确控制特定 Bean 的顺序。 3. **方案三 (@DependsOn)**:通过 `@DependsOn` 注解指定 Bean 之间的依赖关系,成功实现顺序控制,但耦合性较高。
实战指南:四种调整 Spring Bean 初始化顺序的方案
|
2月前
|
XML Java 数据格式
Spring从入门到入土(bean的一些子标签及注解的使用)
本文详细介绍了Spring框架中Bean的创建和使用,包括使用XML配置文件中的标签和注解来创建和管理Bean,以及如何通过构造器、Setter方法和属性注入来配置Bean。
74 9
Spring从入门到入土(bean的一些子标签及注解的使用)
|
3月前
|
缓存 安全 Java
Spring框架中Bean是如何加载的?从底层源码入手,详细解读Bean的创建流程
从底层源码入手,通过代码示例,追踪AnnotationConfigApplicationContext加载配置类、启动Spring容器的整个流程,并对IOC、BeanDefinition、PostProcesser等相关概念进行解释
237 24
Spring框架中Bean是如何加载的?从底层源码入手,详细解读Bean的创建流程
|
2月前
|
Java 测试技术 Windows
咦!Spring容器里为什么没有我需要的Bean?
【10月更文挑战第11天】项目经理给小菜分配了一个紧急需求,小菜迅速搭建了一个SpringBoot项目并完成了开发。然而,启动测试时发现接口404,原因是控制器包不在默认扫描路径下。通过配置`@ComponentScan`的`basePackages`字段,解决了问题。总结:`@SpringBootApplication`默认只扫描当前包下的组件,需要扫描其他包时需配置`@ComponentScan`。
|
3月前
|
XML Java 数据格式
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
Spring 第二节内容补充 关于Bean配置的更多内容和细节 万字详解!
228 18
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
|
3月前
|
XML Java 数据格式
spring复习02,xml配置管理bean
详细讲解了Spring框架中基于XML配置文件管理bean的各种方式,包括获取bean、依赖注入、特殊值处理、属性赋值、集合类型处理、p命名空间、bean作用域及生命周期和自动装配。
spring复习02,xml配置管理bean
|
2月前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
2月前
|
Java 开发者 Spring
Spring bean的生命周期详解!
本文详细解析Spring Bean的生命周期及其核心概念,并深入源码分析。Spring Bean是Spring框架的核心,由容器管理其生命周期。从实例化到销毁,共经历十个阶段,包括属性赋值、接口回调、初始化及销毁等。通过剖析`BeanFactory`、`ApplicationContext`等关键接口与类,帮助你深入了解Spring Bean的管理机制。希望本文能助你更好地掌握Spring Bean生命周期。
95 1
|
2月前
|
Java Spring
获取spring工厂中bean对象的两种方式
获取spring工厂中bean对象的两种方式
45 1
|
2月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
58 2