spring mvc 接收表单 bean
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不同的地方!
相关推荐
编程点滴 2020-07-29
itjavashuai 2020-07-04
凯哥Java 2020-04-25
yupi0 2020-10-10
spring 2020-08-18
幸运小侯子 2020-07-05
qingjiuquan 2020-06-29
shushan 2020-06-25
小鱿鱼 2020-06-22
咻pur慢 2020-06-18
melonjj 2020-06-17
qingjiuquan 2020-06-13
neweastsun 2020-06-05
小鱿鱼 2020-06-05
mxcsdn 2020-05-31
吾日五省我身 2020-05-27
牧场SZShepherd 2020-05-27