spring MVC如何接收表单bean 呢?
之前项目中MVC框架一直用struts2,所以我也就按照struts2 的思维来思考
页面loginInput.jsp:
<?xml version="1.0" encoding="UTF-8" ?> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Insert title here</title> </head> <body> <center> <font color="red" >${message }</font> <form action="<%=path %>/user/loginVerify"> <table> <tr> <td>身份证:</td> <td> <input type="text" name="user.identity" /> </td> </tr> <tr> <td>用户编号:</td> <td><input type="text" name="user.studentID" /> </td> </tr> <tr> <td colspan="2"> <input type="submit" value="login"/> </td> </tr> </table> </form> </center> </body> </html>
控制器LoginController 中登录的方法:
/*** * 校验登录用户 * * @param session * @param user * @return * @throws UnsupportedEncodingException * @throws Exception */ @RequestMapping(value = "/loginVerify") public String login(User user, HttpSession session, Map<String, Object> map,Model model) throws UnsupportedEncodingException, Exception { User user2 = null; if (user.getIdentity() == null) { map.put("message", "请输入身份证"); return "loginInput"; } map.put("identity", user.getIdentity()); model.addAttribute("identity", user.getIdentity()); System.out.println("identity:"+session.getAttribute("identity")); user2 = this.userDao.getByIdentityAndStudentID(new User(user.getIdentity(), user.getStudentID())); System.out.println("user2:" + user2); if (user2 != null) { return "welcome"; } else { map.put("message", "身份证和用户编号有误,请重新登录"); return "loginInput"; } }
我认为页面表单中name为user.identity 和user.studentID的元素会自动注入到上述方法的变量User user 中,结果没有!!!?
实体类User:
package com.springmvc.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; /*** * father class * @author huangwei * */ @Entity public class User { private int id; /** * 身份证 */ private String identity; /*** * 用户编号 */ private String studentID; private String username; public User() { super(); } public User(String identity, String studentID) { super(); this.identity = identity; this.studentID = studentID; } @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getIdentity() { return identity; } public void setIdentity(String identity) { this.identity = identity; } public String getStudentID() { return studentID; } public void setStudentID(String studentID) { this.studentID = studentID; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
原来,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不同的地方!
相关推荐
Spring MVC支持JSR-303/JSR-349 Bean Validation标准,允许开发者定义自定义验证规则。通过在模型对象的属性上添加注解,如`@Size`、`@NotNull`等,可以实现数据验证。 6. **总结** Spring MVC的表单标签库极大地...
总的来说,`SpringMVC接收表单bean示例`是一个综合性的示例,涵盖了Spring MVC处理HTTP请求、使用Java Bean接收和验证表单数据、结合Hibernate进行数据库操作等多个关键知识点。通过这个示例,开发者可以深入理解...
在Spring MVC框架中,服务端表单验证是一个关键的步骤,确保从客户端接收到的数据是有效和安全的。本实例提供了完整的代码和配置,让你能够快速理解和应用服务端验证。以下是对这个实例的详细解析: 1. **Spring ...
- **处理表单中的文件上传**:通过控制器方法来接收和处理上传的文件。 #### 异常处理 (Exception Handling) - **处理器异常解析器 HandlerExceptionHandler**:专门处理控制器中抛出的异常。 - **@...
2. **DispatcherServlet**:Spring MVC的入口点,它是一个前端控制器,接收所有HTTP请求,并根据配置的HandlerMapping转发到相应的Controller。 3. **Controller**:Controller是处理用户请求的组件,通常使用注解...
我们从创建登录表单开始,然后通过配置 Servlet 和 Spring 配置文件来让 DispatcherServlet 接收和处理请求,最后通过控制器处理业务逻辑并将结果数据返回给视图展示。通过这一系列步骤,我们可以更好地理解 Spring ...
对于数据验证,Spring MVC支持JSR 303/349(Java Bean Validation)规范,允许在控制器层或者模型层定义验证规则。当用户提交表单时,Spring MVC会自动执行这些验证,如果数据无效,会返回错误信息。 DWR的集成: ...
Spring MVC支持表单数据绑定,通过`@RequestParam`或`@ModelAttribute`注解获取表单字段。同时,可以通过`@Valid`结合`javax.validation`库进行数据验证。 5. **异常处理**: `@ExceptionHandler`注解可以用来...
Spring MVC可以通过自定义Validator或使用JSR-303/JSR-349 Bean Validation进行验证。同时,安全方面需要考虑防止SQL注入和XSS攻击。 7. **视图解析器**:设置ViewResolver,如InternalResourceViewResolver,用来...
3. **配置Spring**:编写Spring的配置文件,定义bean,包括数据源、SessionFactory(用于Hibernate)、事务管理器以及Spring MVC的相关配置。这里需要配置DAO和Service层的bean,使它们能够利用Hibernate操作数据库...
在处理复杂的表单提交时,Spring MVC 提供了多种解决方案。本文将深入探讨Spring MVC3在处理复杂表单场景下的最佳实践。 首先,我们要理解什么是复杂表单。复杂表单通常涉及到多个关联对象的提交,比如用户信息与...
这些模块提供了依赖注入(DI)、bean管理、事务控制等功能,是Spring MVC运行的基石。 2. **Spring Web**:这个模块提供了与Web相关的功能,如Servlet监听器、HTTP上下文等,使得Spring可以与Web应用服务器进行交互...
在Spring MVC中,控制器接收用户请求,调用业务逻辑(通常由Spring Bean处理),并返回一个模型,该模型随后被渲染为视图。Spring MVC还提供了强大的数据绑定、表单验证和异常处理功能。 在学习Servlet、JSP和...
- 将Shiro配置与Spring的Bean管理相结合,便于维护和扩展。 - 在Web层进行权限控制,避免过多的业务逻辑与权限相关代码混合。 - 合理设计权限体系,避免过度复杂导致管理困难。 以上就是关于"Spring MVC 整合 ...
9. `@Autowired` 注解:Spring的依赖注入注解,可以自动将匹配的bean注入到字段或方法中。 10. `@Value` 注解:用于注入配置属性值,可以从属性文件中读取。 以上就是Spring MVC中的一些核心注解用法,通过这些...
2. **spring-mvc.xml**:定义Bean、数据源、事务管理器、视图解析器、HandlerMapping和HandlerAdapter等。 四、Spring MVC 原理 1. **AOP代理**:Spring MVC中的切面编程用于实现如日志记录、事务管理等功能。 2. ...
在本项目中,Spring作为依赖注入容器,管理所有bean的生命周期,包括Spring MVC的控制器、Hibernate的数据访问对象(DAO)等。此外,Spring的事务管理功能可以确保注册操作的原子性,防止因部分数据更新失败而导致的...
Spring配置文件主要用于配置Spring MVC的相关bean,包括文件上传解析器、请求映射器和控制器等。 1. **文件上传解析器**: - `<bean id="multipartResolver" class="org.springframework.web.multipart.commons....
在本文中,我们将深入探讨如何使用Spring MVC框架与Ajax技术结合来实现文件上传的功能。Spring MVC是Spring框架的一部分,提供了一种模型-视图-控制器(MVC)架构模式,用于构建Web应用程序。Ajax(Asynchronous ...