为了账号安全,请及时绑定邮箱和手机立即绑定

@ModelAttribute批注,何时使用?

@ModelAttribute批注,何时使用?

LEATH 2019-12-21 11:24:35
假设我们有一个实体Person,一个控制器PersonController和一个edit.jsp页面(创建一个新的或编辑一个现有的人)控制者@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批注,并且它可以正常工作。为什么以及何时需要将批注添加到person对象:@RequestMapping(value = "/save", method = RequestMethod.POST)public String savePerson(@ModelAttribute("personToEditOrCreate") Person person, BindingResult result) {    personService.savePerson(person);    return "redirect:/home";}
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

方法参数上的@ModelAttribute表示将从模型中检索参数。如果模型中不存在该参数,则将首先实例化该参数,然后将其添加到模型中。


查看完整回答
反对 回复 2019-12-21
  • 2 回答
  • 0 关注
  • 508 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信