在Grails中,
当违反特定的“唯一”约束时,我想设置上升的异常消息。
这可能吗?
答案 0 :(得分:7)
参考中列出了用于每个约束的消息代码 该约束的页面,例如 http://grails.org/doc/latest/ref/Constraints/unique.html。从那以后 看起来像你需要的代码是
com.project.ModelName.fieldName.unique=blah
您需要将com.project.ModelName.fileName替换为适当的值
感谢http://grails.1312388.n4.nabble.com/Custom-error-message-in-message-properties-td3335696.html
答案 1 :(得分:0)
只是为了更新给定的答案,上面甚至文档似乎都暗示:
此约束会影响架构生成。
错误代码:className.propertyName.unique
但是对于我的应用程序来说这不是真的,也许grails 3中的事情发生了变化。我尝试了一个令人厌倦的变化,并且没有成功仍然返回默认值。
面对此问题的任何人的解决方案都非常简单。
找到返回响应的默认条目:
在我的情况下,我有两个条目:
##default.not.unique.message=Property [{0}] of class [{1}] with value [{2}] must be unique
##default.not.unique.message={0} must be unique
通过在行的开头添加哈希并尝试再次保存记录来对它们进行评论。这次在我的网络界面上,我看到了实际的字段名称,而不是默认的grails消息。
unique.com.xxx.users.PhotosBean.imageSHa
我在messages.properties中添加了这个键的条目,发现一切正常。
请注意,它是挂起子类而不是实际的类,也许在我的情况下它是复杂的。
这些情况下的技巧是注释掉返回值的默认条目,然后在返回实际约束时重新启用。