0

当我尝试在我的 jsp 表单String的字段中键入 a 时,我仍然遇到致命错误而不是正常的表单验证。int我已经添加typeMismatch=msg了 messages.properties (Howto validate Collections in Maps),但它没有用。我还能错过什么?

4

1 回答 1

1

发现问题:你不能这样写:

@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) {
        ...

这也证明您最好将代码放在问题中。“你”是指我。

于 2013-05-14T14:05:31.687 回答