更改用户数据的最佳方法是什么? 我有很多属性,如'用户名','城市','手机',当我想编辑一个字段('密码')时,我必须这样做:
<form:form action="editUser.htm?id=${user.id}" commandname="user">
<form:hidden path='username' />
<form:hidden path='city' />
<form:hidden path='phone' />
<form:input path='password' />
....
在我的控制器中定义了操作:
@RequestMapping(value = "/editUser.htm", method=RequestMethod.POST)
public ModelAndView ordertypeedit(@ModelAttribute("user") User user,
BindingResult result, HttpServletRequest request)throws Exception{
userTypeValidator.validate(orderType, result);
if(result.hasErrors()){
(...)
return new ModelAndView(...);
}
orderTypeDAO.update(orderType);
return new ModelAndView(...);
我不喜欢将所有内容设置为我的操作表单...如果我错过它,则显示错误'column'username'不能为null“。
答案 0 :(得分:4)
这取决于您的属性是否在该表单上得到验证或强制要求:
如果没有,那么您无需使用表单提交:
<form:form action="editUser.htm?id=${user.id}" commandname="user">
<form:input path='password' />
并且在您的控制器中,您将获得仅包含用户参数的用户对象。
替代方法是传递常规(不是Spring MVC)表单并使用id和password属性创建内部用户对象。
答案 1 :(得分:1)
你可以使用简单的(没有弹簧标签)表单和一个输入,并使用@RequestParam
在控制器中获取它