spring MVC如何接收表单bean 呢?

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

页面loginInput.jsp:

  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. <form action="<%=path %>/user/loginVerify">
  20. <table>
  21. <tr>
  22. <td>身份证:</td>
  23. <td> <input type="text" name="user.identity"  /> </td>
  24. </tr>
  25. <tr>
  26. <td>用户编号:</td>
  27. <td><input type="text" name="user.studentID"  /> </td>
  28. </tr>
  29. <tr>
  30. <td colspan="2">
  31. <input type="submit"  value="login"/>
  32. </td>
  33. </tr>
  34. </table>
  35. </form>
  36. </center>
  37. </body>
  38. </html>
<?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>
	&lt;form action="&lt;%=path %&gt;/user/loginVerify"&gt;
&lt;table&gt; &lt;tr&gt;
&lt;td&gt;身份证:&lt;/td&gt;
&lt;td&gt; &lt;input type="text" name="user.identity" /&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;用户编号:&lt;/td&gt;
&lt;td&gt;&lt;input type="text" name="user.studentID" /&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;input type="submit" value="login"/&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/form&gt; &lt;/center&gt;

</body>

</html>

控制器LoginController 中登录的方法:

  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. }
/***
* 校验登录用户
*
* @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";
}
}</pre>

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

实体类User:

  1. package com.springmvc.entity;
  2. import javax.persistence.Entity;
  3. import javax.persistence.GeneratedValue;
  4. import javax.persistence.Id;
  5. /***
  6. * father class
  7. * @author huangwei
  8. *
  9. */
  10. @Entity
  11. public  class User {
  12. private int id;
  13. /**
  14. * 身份证
  15. */
  16. private String identity;
  17. /***
  18. * 用户编号
  19. */
  20. private String studentID;
  21. private String username;
  22. public User() {
  23. super();
  24. }
  25. public User(String identity, String studentID) {
  26. super();
  27. this.identity = identity;
  28. this.studentID = studentID;
  29. }
  30. @Id
  31. @GeneratedValue
  32. public int getId() {
  33. return id;
  34. }
  35. public void setId(int id) {
  36. this.id = id;
  37. }
  38. public String getIdentity() {
  39. return identity;
  40. }
  41. public void setIdentity(String identity) {
  42. this.identity = identity;
  43. }
  44. public String getStudentID() {
  45. return studentID;
  46. }
  47. public void setStudentID(String studentID) {
  48. this.studentID = studentID;
  49. }
  50. public String getUsername() {
  51. return username;
  52. }
  53. public void setUsername(String username) {
  54. this.username = username;
  55. }
  56. }
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 接收表单 bean的更多相关文章

  1. Spring MVC与表单日期提交的问题

    Spring MVC与表单日期提交的问题 spring mvc 本身并不提供日期类型的解析器,需要手工绑定, 否则会出现非法参数异常. org.springframework.beans.BeanIn ...

  2. spring mvc form表单提交乱码

    spring mvc form表单submit直接提交出现乱码.导致乱码一般是服务器端和页面之间编码不一致造成的.根据这一思路可以依次可以有以下方案. 1.jsp页面设置编码 <%@ page ...

  3. spring:设置映射访问路径 或 xml配置访问路径 (spring mvc form表单)

    项目hello, 在src/main/java下面建一个目录: charpter2 一.xml配置访问路径 web.xml <web-app> <display-name>Ar ...

  4. Spring MVC 验证表单

      在实际工作中,得到数据后的第一步就是检验数据的正确性,如果存在录入上的问题,一般会通过注解校验,发现错误后返回给用户,但是对于一些逻辑上的错误,比如购买金额=购买数量×单价,这样的规则就很难使用注 ...

  5. Spring MVC 3 表单中文提交post请求和get请求乱码问题的解决方法

    在spring mvc 3.0 框架中,通过JSP页面.HTML页面以POST方式提交表单时,表单的参数传递到对应的servlet后会出现中文显示乱码的问题.解决办法可采用spring自带的过滤技术, ...

  6. spring mvc 提交表单的例子

    1. 构建MAVEN项目,然后转换成web格式,结构图如下: 2. 通过@RequestMapping来进行配置,当输入URL时,会以此找到对应方法执行,首先调用setupForm方法,该方法主要是生 ...

  7. 使用Spring MVC 的表单控制器SimpleFormController

    以注册过程为例,我们可能会选择继承AbstractController来实现表单的显示,继承AbstractCommandController来实现表单的处理 ,这样是可行的,但必须要维护两个控制器 ...

  8. spring mvc防止表单重复提交的代码片段

    1.定义一个token接口 package com.bigbigrain.token; import java.lang.annotation.Documented; import java.lang ...

  9. spring mvc 提交表单汉字乱码

    修改web.xml添加如下信息 <filter> <filter-name>characterEncodingFilter</filter-name> <fi ...

随机推荐

  1. Leetcode669.Trim a Binary Search Tree修建二叉树

    给定一个二叉搜索树,同时给定最小边界L 和最大边界 R.通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) .你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根 ...

  2. 支付宝 python alipay 集成(转)

    即时到帐只是支付宝众多商家服务中的一个,表示客户付款,客户用支付宝付款,支付宝收到款项后,马上通知你,并且此笔款项与交易脱离关系,商家可以马上使用. 即时到帐只对企业客户服务,注册成功企业账号以后,申 ...

  3. css3烟花效果

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  4. CSS3渐变效果

    一.线性渐变linear-gradient  1.使用方法: background:-webkit-linear-gradient(red,blue);background:-moz-linear-g ...

  5. margin负值5种应用

    最近做的项目中经常会用到margin的负值,这里就总结一下关于margin负值的5种使用及相关bug的解决. 1. 在流动性布局中的应用 如WordPress的两栏式不固定布局就是使用margin负值 ...

  6. objectarx之判断给定的三点是否共线

    bool ThreePointIsCollinear(const AcGePoint2d &pt1, const AcGePoint2d &pt2, const AcGePoint2d ...

  7. Leetcode872.Leaf-Similar Trees叶子相似的树

    请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 . 举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树. 如果有两颗二叉树的叶值序列是相同 ...

  8. python装饰器2

    装饰模式有很多经典的使用场景,例如插入日志.性能测试.事务处理等等,有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的.下面就一步步看看Python中的装饰器. 一个简单 ...

  9. PHP核心编程--站内搜索

    一.         站内搜索 前台页面: 在index.php页面中添加一个表单,输入搜索框 后台页面: 将index.php另存为search.php 对于搜索的 分页关键代码: 高亮关键字 相关 ...

  10. python中map、reduce函数

    map函数: 接受一个函数 f 和一个 list .格式:map( f , L),对L中的每个元素,进行f(x)的一个操作. 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] ...