[英]Welcome page in spring form
為什么我們在使用 Spring 表單時在 Controller class 的 showForm() 方法中返回了 ModelAndView。
@Controller
public class EmployeeController {
@RequestMapping(value = "/employee", method = RequestMethod.GET)
public ModelAndView showForm() {
return new ModelAndView("employeeHome", "employee", new Employee());
}
@RequestMapping(value = "/addEmployee", method = RequestMethod.POST)
public String submit(@Valid @ModelAttribute("employee")Employee employee,
BindingResult result, ModelMap model) {
if (result.hasErrors()) {
return "error";
}
model.addAttribute("name", employee.getName());
model.addAttribute("contactNumber", employee.getContactNumber());
model.addAttribute("id", employee.getId());
return "employeeView";
}
}
如果您從 controller 方法返回一個字符串,則其值將被視為您要向用戶顯示的視圖的名稱。 在呈現視圖時,數據取自 Model 或 ModelMap 實例,您將其作為參數傳遞給方法並在方法主體中填充數據。
model.addAttribute("name", employee.getName());
model.addAttribute("contactNumber", employee.getContactNumber());
model.addAttribute("id", employee.getId());
return "employeeView";
但是,如果您返回 ModelAndView,則視圖的名稱以及呈現視圖所需的數據都取自單個返回的實例。
return new ModelAndView("employeeHome", "employee", new Employee());
在這里,您返回一個 ModelAndView 的實例,它帶有視圖的名稱 ('employeeHome') 和由名為 'employee' 的屬性中的 Employee object 表示的數據。
每個選項的使用差異不大,因此請使用您認為更方便的任何選項。
您也可能想查看這篇文章以獲得更清晰的理解: https://www.baeldung.com/spring-mvc-model-model-map-model-view
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.