接上一篇:springmvc学习笔记(九):在控制器的 业务方法中,通过 Javabean 实体类 接收表单提交的数据(注解实现)
如果有两个注册表单,注册的字段完全一样,并且交给同一个控制器处理,如下:
<%-- 普通员工注册字段 和 管理员注册字段 完全相同&#xff0c;且交给同一个控制器处理 --%>普通员工注册&#xff1a;姓名&#xff1a;月薪&#xff1a;入职时间&#xff1a;管理员注册&#xff1a;姓名&#xff1a;月薪&#xff1a;入职时间&#xff1a;
在控制器的业务方法里&#xff0c;传入两个实体类 来接收表单提交的数据&#xff0c;如下&#xff1a;
// 业务方法里传入两个实体类 Emp 和 Admin 来接收数据&#64;RequestMapping(value &#61; "/register.action", method &#61; RequestMethod.POST)public String register(Emp emp, Admin admin) throws Exception{System.out.println("普通员工注册-->" &#43; emp);System.out.println("管理员注册-->" &#43; admin);return "/index.jsp";}
其中两个实体类 Emp.java 和 Admin.java 里的属性字段也是完全一样&#xff0c;都和表单提交数据的 name 属性一一对应&#xff1b;
那么&#xff0c;提交之后发现&#xff0c;普通员工注册 提交的数据会封装到 Emp 实体类中&#xff0c;同时也会封装到 Admin 实体类中&#xff1b;
同样的&#xff0c;管理员注册 提交的数据会封装到 Admin 实体类中&#xff0c;同时也会封装到 Emp 实体类中&#xff1b;
即无法区分 哪个表单提交的数据 应该封装到哪个 实体类中&#xff0c;如下所示&#xff1a;
public class RegisterBean {private Emp emp;private Admin admin;public Emp getEmp() {return emp;}public void setEmp(Emp emp) {this.emp &#61; emp;}public Admin getAdmin() {return admin;}public void setAdmin(Admin admin) {this.admin &#61; admin;}}
&#64;RequestMapping(value &#61; "/register.action", method &#61; RequestMethod.POST)public String register(RegisterBean bean) throws Exception{System.out.println("普通员工注册-->" &#43; bean.getEmp());System.out.println("管理员注册-->" &#43; bean.getAdmin());return "/index.jsp";}