我再次陷入一些令人困惑的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/