Hibernate-validator:如何使用包含格式" $ {...}"?的变量插入消息。

时间:2014-09-26 18:32:47

标签: java hibernate hibernate-validator

我有一个hibernate验证消息,插入值$ {value}。

问题是,值变量本身是“$ {ohno}”形式的字符串。我希望我的最终插值消息用这个文字字符串“$ {ohno}”替换$ {value},但它似乎尝试某种递归插值,产生错误“无法找到属性ohno”。

我真的无法在消息模板中“转义”此字符串。也许我可以在将它传递给注释之前在字符串本身中将其转义但我宁愿不必这样做(我在其他地方使用此字符串作为文字)。

有没有人知道一项解决方法?或许我应该用hibernate-validator打开一张票......

1 个答案:

答案 0 :(得分:1)

除了转义{,},\和$之外,实际上没有解决方法,需要在Bean验证中转义元字符。请参阅规范中的Message Interpolation。另请参阅Validator问题跟踪器中的HV-934

现在,如果你真的不想根据Bean Validation规范进行插值,你可以编写on MessageInterpolator 并确保它在Validator初始化期间被选中。基本上你需要一个 validation.xml 指出你的自定义插补器。查看文档,有几个例子如何做。