我正在尝试使用以下代码将字符串输入表单参数绑定到bean的date属性。
我想绑定日期格式化程序
仅限于bean registrationDate
的名为User
的特定属性。我已经尝试了各种方法来指定字段名称
registrationDate
来电binder.registerCustomEditor
但CustomDateEditor
永远不会被调用。
CustomDateEditor
有效
只有当我从binder.registerCustomEditor
调用中删除字段名称并使其成为所有日期字段的全局字符时,如下所示
下面控制器中initBinderAll()
方法中的最后一个注释行。
希望有人指出我正确的方向。
user.jsp: -
<form:form action="/some_url" modelAttribute="user">
<input type="text" id="registrationDate" name="registrationDate" value="${regDate}" />
</form:form>
User.java: -
@Entity
@Table(name="user")
public class User {
@Column(name = "reg_date")
@Temporal(TemporalType.DATE)
private Date registrationDate;
}
UserController.java: -
@Controller
public class UserController {
@RequestMapping(value = "/some_url", method = RequestMethod.POST)
public String handleSubmission(
@ModelAttribute("user")@Valid User user, BindingResult result) throws IOException {
}
@InitBinder
public void initBinderAll(WebDataBinder binder) {
binder.registerCustomEditor(Date.class, "user.registrationDate", new CustomDateEditor(new SimpleDateFormat("yyyy-dd-MM"), false));
binder.registerCustomEditor(Date.class, "User.registrationDate", new CustomDateEditor(new SimpleDateFormat("yyyy-dd-MM"), false));
binder.registerCustomEditor(Date.class, "registrationDate", new CustomDateEditor(new SimpleDateFormat("yyyy-dd-MM"), false));
//binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-dd-MM"), true));
}
}