假設(shè)我們有一個(gè)實(shí)體Person,一個(gè)控制器PersonController和一個(gè)edit.jsp頁面(創(chuàng)建一個(gè)新的或編輯一個(gè)現(xiàn)有的人)控制者@RequestMapping(value = "/edit", method = RequestMethod.POST)public String editPerson(@RequestParam("fname") String fname, Model model) { if(fname == null || fname.length() == 0){ model.addAttribute("personToEditOrCreate", new Person()); } else{ Person p = personService.getPersonByFirstName(fname); model.addAttribute("personToEditOrCreate", p); } return "persons/edit";}@RequestMapping(value = "/save", method = RequestMethod.POST)public String savePerson(Person person, BindingResult result) { personService.savePerson(person); return "redirect:/home";}edit.jsp<form:form method="post" modelAttribute="personToEditOrCreate" action="save"> <form:hidden path="id"/> <table> <tr> <td><form:label path="firstName">First Name</form:label></td> <td><form:input path="firstName" /></td> </tr> <tr> <td><form:label path="lastName">Last Name</form:label></td> <td><form:input path="lastName" /></td> </tr> <tr> <td><form:label path="money">Money</form:label></td> <td><form:input path="money" /></td> </tr> <tr> <td colspan="2"> <input type="submit" value="Add/Edit Person"/> </td> </tr> </table> </form:form>我正在嘗試上面的代碼(沒有在savePerson方法中使用@ModelAttribute批注,并且它可以正常工作。為什么以及何時(shí)需要將批注添加到person對象:@RequestMapping(value = "/save", method = RequestMethod.POST)public String savePerson(@ModelAttribute("personToEditOrCreate") Person person, BindingResult result) { personService.savePerson(person); return "redirect:/home";}
2 回答

繁星點(diǎn)點(diǎn)滴滴
TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
方法參數(shù)上的@ModelAttribute表示將從模型中檢索參數(shù)。如果模型中不存在該參數(shù),則將首先實(shí)例化該參數(shù),然后將其添加到模型中。
- 2 回答
- 0 關(guān)注
- 597 瀏覽
添加回答
舉報(bào)
0/150
提交
取消