我看到使用bean而不是模型编写教程,但没有解释为什么需要这样做。
http://www.dineshonjava.com/2012/12/spring-mvc-with-hibernate-crud-example.html#.V4R1_vl96Un
任何人都知道为什么这样做?使用bean类的任何用例?
控制器中的一些代码:
@RequestMapping(value = "/edit", method = RequestMethod.GET)
public ModelAndView deleteEmployee(@ModelAttribute("command")EmployeeBean employeeBean,
BindingResult result) {
Map<String, Object> model = new HashMap<String, Object>();
model.put("employee", prepareEmployeeBean(employeeService.getEmployee(employeeBean.getId())));
model.put("employees", prepareListofBean(employeeService.listEmployeess()));
return new ModelAndView("addEmployee", model);
}
private EmployeeBean prepareEmployeeBean(Employee employee){
EmployeeBean bean = new EmployeeBean();
bean.setAddress(employee.getEmpAddress());
bean.setAge(employee.getEmpAge());
bean.setName(employee.getEmpName());
bean.setSalary(employee.getSalary());
bean.setId(employee.getEmpId());
return bean;
}
我是sping mvc的新手,感谢任何人都可以解释为什么要这样做... 感谢。
答案 0 :(得分:1)
通过这个例子来看,他似乎刚刚创建了“员工”这个&#39; class返回前端JSP(表示层)。这将是将POJO与休眠&#39; Employee&#39;他专门为将对象映射到hibernate而制作的。
有关JavaBeans约定的更多信息:https://en.wikipedia.org/wiki/JavaBeans
答案 1 :(得分:-1)
作者以这样的方式编写代码:在将数据呈现给JSP时,它将模型类转换为自定义bean,并在插入数据时将自定义bean转换为模型类。
他的想法是在持久层和表示层之间引入自定义控制层。原因可能是通过添加自定义默认值来控制流程,或者可能是自定义验证,尽管Spring可以使用@InitBinder和许多其他技术实现这一点。