微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-如何从Grails中的控制器访问域属性?

我有以下Grails域类:

class Product {  
    String name  
    Float basePrice  
    Category category  
    String image = "default.jpg"  

    static constraints = {
        name(size:3..25, blank:false)
        basePrice(scale:2, nullable:false)
        category(inList:Category.list(), nullable:false)
        image(blank:false)
    }
}

从控制器,我想获取图像属性认值(在本例中为“ default.jpg”).像这样:

def productInstance = new Product(params)
productInstance.image = getProductPicturePath() ?: Product().image

getProductPicturePath返回图像路径,但是如果未提交图像,则控制器应将null值替换为认值.虽然我当然可以这样写:

productInstance.image = getProductPicturePath() ?: "default.jpg"

当然不是很干,我希望将认值放在一个位置.我该如何实现?

解决方法:

显而易见的解决方案是将其声明为常量,然后对其进行引用.

class Product {  
    static DEFAULT_IMAGE = "default.jpg"
    String name  
    Float basePrice  
    Category category  
    String image = DEFAULT_IMAGE

    static constraints = {
        name(size:3..25, blank:false)
        basePrice(scale:2, nullable:false)
        category(inList:Category.list(), nullable:false)
        image(blank:false)
    }
}

productInstance.image = getProductPicturePath() ?: Product.DEFAULT_IMAGE

更好的是,使getProductPicturePath()返回认值.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐