我正在使用Grails 2.4.4和postgresql。当我运行应用程序时,我看到错误消息Cannot get property 'myname' on null object
。我知道表不是空的并且数据库连接正确,因为我可以使用脚手架上传并查看数据。
域类代码:
class My_table {
//Integer id
String myname
static constraints = {}
}
Controller 代码:
class My_tableController {
def index() {
def my_table = My_table.list()
[my_table:my_table]
}
我的index.gsp文件:
<g:select name="name" from="${my_table}"/><br/>
<label>${my_table.myname} </label><br/>
最佳答案
以我看到的形式,此行中发生了错误:<label>${my_table.myname} </label><br/>
。
在这里,您在上下文之外调用属性名称<g:select name="name" from="${my_table}"/><br/>
<label>${my_table.myname} </label><br/>
因为my_table
是My_table
实例的列表,并且没有名为name的属性,所以会出现错误。
解决此问题的方法可能是:
<select name="name">
<g:each in="${my_table}" var="table">
<option value="${table.name}">${table.name}</option>
</g:each>
</select>
还要记住,标签标记在选择内无效,因为您可以读取“允许的内容”零个或多个
<option>
或<optgroup>
元素。在https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select中
关于grails - Grails看不到数据库表的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46770835/