如何在grails中更改约束错误消息

时间:2010-06-02 14:49:39

标签: spring grails

我的域有限制,例如最小值必须大于0

如果没有传递约束,我不知道如何更改消息。

我需要编辑哪个文件来执行此操作?

我还需要显示一些属性的值..比如

  

“你无法进行任何交易   因为你的余额不到100。   你目前的余额是   扣除后$ {currentBalance}。你以前的   余额是$ {previousBalance}和   需要扣除的金额   $ {deductedValue}“

请注意我的课程:

class Transaction
BigDecimal previousBalance
BigDecimal currentBalance
BigDecimal deductedValue ; 

constraints currentBalance(min:100)

beforeUpdate => currentBalance = previousBalance - deductedValue 

4 个答案:

答案 0 :(得分:1)

文档让您了解Grails验证错误消息的正确方法。

http://grails.org/doc/1.3.1/guide/7.%20Validation.html#7.4%20Validation%20and%20Internationalization

另外,请查看这本免费电子书,这是对Grails基础知识的一个很好的介绍

http://www.infoq.com/minibooks/grails-getting-started

具体来说是p28

答案 1 :(得分:0)

使用与违反的约束相对应的消息编辑grails-app / i18n文件夹中的messages.properties文件。对于可以帮助您生成消息以配合约束的插件,请参阅this.

答案 2 :(得分:0)

grails-app/i18n下使用messages.properties添加您的字符串(或您正在使用的任何其他语言区域)。

如果您的域类名为user,并且您拥有的字段名为balance

class User{
   static constraints = {
      balance(min:100)
    }
   BigDecimal balance;
}

然后你会添加:

user.balance.min.error.User.balance= you cannot make any transaction because your balance is less than [{3}].Your current balance is [{2}]

答案 3 :(得分:0)

如果您只想检查某个值是否大于某个数字,请在域类(myClass)中添加约束,例如:

static constraints = { myNumber(min:0) }

在messages.properties文件中添加以下行:

myClass.myNumber.min.notmet = There is a problem: The number must be greater than {3}.