我再次陷入一些令人困惑的Grails语法中。我得到的错误是:



具有讽刺意味的是,Grails建议的productDescr是我要使用的属性。找不到某种方式,但它知道应该是productDescr。

这是我正在使用的示例代码...

型号(ProductType.groovy):

package grailsTest

class ProductType {

    String productCode
    String productName
    String productDescr

    static constraints = {
        productCode (size: 3..20, unique: true, nullable: false)
        productName (maxSize: 45, blank: false)
        productDescr (maxSize: 500, blank: true)
    }
}

Controller (ProductTypeController.groovy):
package grailsTest

class ProductTypeController {
    static scaffold = true

    def showSingleType() {
        def productType = ProductType.findByProductCode("prod1");
        render view: "showSingleType", model: [productType: ProductType]
    }
}

和查看(showSingleType.gsp):
<html>
<head>
    <title>Product Types</title>
</head>
<body>
  <div class="body">
        Selected product type: ${productType.productDescr }
  </div>
</body>
</html>

我首先通过脚手架来添加我的测试数据(请参见屏幕图片)。

然后,将网址更改为:
http://localhost:8080/GrailsTest/productType/showSingleType

响应是此错误页面:

一定是我错过的一个愚蠢的设置,但我看不到树木的森林:(

最佳答案

您的模型有误:

render view: "showSingleType", model: [productType: ProductType]

应该是:
render view: "showSingleType", model: [productType: productType]

编写方式中,模型中productType变量的值是ProductType类,而不是在 Controller 操作中初始化的productType变量。由于您的GSP引用的是productType.productDescr,而productType的值是ProductType类,因此系统尝试在productDescr类上引用一个名为ProductType的静态属性,并且如错误消息所示,该属性不存在。

关于grails - “没有这样的属性(property)”,但Grails看到了并给出了 'Possible solution'吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25416706/

10-13 05:15