小编Jim*_*ace的帖子

Grail的错误属性来自哪里?

Grails有关于数据绑定的错误,因为当你处理错误的数字输入时它会抛出一个强制转换异常.JIRA:http://jira.grails.org/browse/GRAILS-6766

为了解决这个问题,我编写了以下代码来手动处理Foo位于的POGO类的数字输入src/groovy

void setPrice(String priceStr)
{
    this.priceString = priceStr

    // Remove $ and , 
    priceStr = priceStr.trim().replaceAll(java.util.regex.Matcher.quoteReplacement('$'),'').replaceAll(',','')

    if (!priceStr.isDouble()) {
        errors.reject(
            'trade.price.invalidformat',
            [priceString] as Object[],
            'Price:[{0}] is an invalid price.')

        errors.rejectValue(
            'price',
            'trade.price.invalidformat')
    } else {
        this.price = priceStr.toDouble();
    }
}
Run Code Online (Sandbox Code Playgroud)

以下命令会在该errors.reject()行上引发空引用异常.

foo.price = "asdf" // throws null reference on errors.reject()
foo.validate()
Run Code Online (Sandbox Code Playgroud)

但是,我可以说:

foo.validate()
foo.price = "asdf" // no Null exception
foo.hasErrors() // false
foo.validate()
foo.hasErrors() // true
Run Code Online (Sandbox Code Playgroud)

validate()调用时错误从何而来?有没有办法在errors不 …

validation grails grails-2.0

4
推荐指数
2
解决办法
1243
查看次数

标签 统计

grails ×1

grails-2.0 ×1

validation ×1