当我尝试在jsp表单的String
字段中键入int
时,我仍然遇到致命错误,而不是正常的表单验证。我在messages.properties(Howto validate Collections in Maps)中添加了typeMismatch=msg
但它没有用。我还能错过什么?
答案 0 :(得分:0)
发现问题:你不能这样写:
@RequestMapping(value = "/addSomething", method = RequestMethod.POST)
public String addSomething(
@ModelAttribute("something") Something something,
@Valid Something validSomething,
BindingResult result,
ModelMap map) {
...
某些属性必须从String转换为int,并且在验证之前进行转换。这个不好!并且validSomething
也没用。这解决了这个问题:
@RequestMapping(value = "/addSomething", method = RequestMethod.POST)
public String addSomething(
@Valid @ModelAttribute("something") Something something,
BindingResult result,
ModelMap map) {
...
这也证明你最好把代码放在问题中。而“你”我指的是我。