1

我在将表单输入文本绑定到表单绑定到的 bean 的 Integer 字段时遇到问题。如果我在输入文本中输入了错误的数字(例如:“12b”),我会遇到绑定异常。所以,我以这种方式在我的控制器中设置了一个@InitBinder:

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(Integer.class, new CustomIntegerBinder());
    }

其中 CustomIntegerBinder 实现如下:

    public class CustomIntegerBinder extends PropertyEditorSupport {

        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            try {
                setValue(Integer.parseInt(text));
            } catch (Exception e) {
                //I WANT TO ADD ERROR TO THE ERROR LIST!
            }
        }

        @Override
        public String getAsText() {
            return getValue().toString();
        }
    }        

我的问题是:我怎样才能成功地将消息错误添加到错误列表中,以便转换错误不会导致应用程序崩溃,而是在 jsp 的“错误”标签中打印消息?

谢谢!

4

1 回答 1

0

如果无法从文本设置值,则该setAsText方法应抛出(如方法签名所示)。IllegalArgumentException

如果你IllegalArgumentException从你那里抛出catch错误,那么 Spring 应该为你添加错误。

于 2012-07-31T08:23:37.503 回答