我有一个非常简单的控制器,它 1)加载要由表单(视图)使用的对象,2)接受通过该表单提交的对该对象的更改。控制器(“PersonController”)如下所示:
@RequestMapping(value="/accountsettings/{personid}")
public String loadAccountSettings(@PathVariable("personid") int personid,
ModelMap model){
Person person = personService.find(personid);
model.addAttribute("person",person);
return "account-settings-form";
}
@RequestMapping(value="/saveaccountsettings")
public String saveSettings(@ModelAttribute("person") Person person){
personService.update(person);
return "account-settings-form";
}
“人” pojo 看起来像这样:
public class Person {
private id int;
private String name;
private String username;
private String phoneNumber;
//getters and setters follow
}
我的表单(account-settings-form.jsp)具有以下内容:
<form:form commandName="person" action="/saveaccountsettings">
<form:input path="name" /><br />
<form:input path="username" /><br />
<form:input path="phoneNumber" /><br />
<input type="submit" />
</form:form>
我遇到的问题是,当表单加载数据(loadAccountSettings)时,所有字段都按预期填充(姓名、用户名和电话号码)。然而,当我去处理更新时,电话号码字段被视为空,即使数据在表单中并且(在使用 Firebug 进行检查时),我看到该值作为参数传回。
有谁知道为什么控制器会缺少此字段的 (person.phoneNumber) 值?
提前致谢。
-e