【问题标题】:JSR-303 with Spring and Hibernate mixed error messages带有 Spring 和 Hibernate 混合错误消息的 JSR-303
【发布时间】:2011-04-07 13:34:47
【问题描述】:

我想做的是有一个标准的错误消息,它使用注释来填写所述错误消息的值。代码应该有助于解释。

我有一个模型 POJO,上面有带有 JSR-303 注释的字段:

@Min(value = 1)
@Max(value = 9999)
private int someInt;

目前,我有两个属性文件:一个用于保存我的字段的标签,另一个用于保存实际消息:

label.someInt=Some Integer Field
Min="{0}" must be no less than {value}

然后我循环遍历东西来构建我想要的东西:

for (FieldError a : result.getFieldErrors()) {
        boolean found = false;
        for (String b : a.getCodes()) {
            System.out.println(b);
            try {
                addErrorMessage(messageSource.getMessage(b,
                        new Object[] { new DefaultMessageSourceResolvable(
                            new String[] { "label." + a.getField() }
                        )},
                        null));
                found = true;
                break;
            } catch (Exception e){/* nom Exception */}
        }
        if (!found) {
            addErrorMessage(a.getDefaultMessage());
        }
    }

这一切都很好,但我希望能够坚持基于注释的处理方式并在字段上添加某种标签。例如:

@Min(value = 1)
@Max(value = 9999)
@Label(value = "Some Integer Field")
private int someInt;

然后我可以编写一个辅助函数,它只使用注释来标记属性文件中的错误消息。我还需要它来处理基于 Spring 的验证错误,例如 typeMismatch。有趣的东西,那个。

提前感谢您的帮助!

【问题讨论】:

    标签: java hibernate spring annotations bean-validation


    【解决方案1】:

    看看这个论坛:http://forum.springsource.org/archive/index.php/t-83353.html

    或者您可以使用DefaultMessageCodesResolver支持的标准消息密钥

    好像已经实现了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-20
      • 2011-02-12
      • 2012-08-20
      相关资源
      最近更新 更多