我的域有限制,例如最小值必须大于0
如果没有传递约束,我不知道如何更改消息。
我需要编辑哪个文件来执行此操作?
我还需要显示一些属性的值..比如
“你无法进行任何交易 因为你的余额不到100。 你目前的余额是 扣除后$ {currentBalance}。你以前的 余额是$ {previousBalance}和 需要扣除的金额 $ {deductedValue}“
请注意我的课程:
class Transaction
BigDecimal previousBalance
BigDecimal currentBalance
BigDecimal deductedValue ;
constraints currentBalance(min:100)
beforeUpdate => currentBalance = previousBalance - deductedValue
答案 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}.