2012-08-05 120 views
0

从我的create.gsp页面,我希望看到我的数据库中可用的所有districts的列表。为什么grails会返回一个空对象数组?

<td valign="top" class="value ${hasErrors(bean: streamInstance, field: 'district', 'errors')}"> 
    <% println ctv.District.list(); %> 
    <g:select name="district.id" from="${ctv.District.list()}" optionKey="id" value="${streamInstance?.district?.id}" /> 
</td> 

但是,我看到了<select>声明不为空,但看不到任何名称。当我加入println,我看到:

District = [ 
       null, null, null, null, null, null, null, null, null, 
       null, null, null, null, null, null, null, null, null, 
       null, null, null, null, null, null, null, null, null, 
       null, null, null, null, null, null, null, null, null, 
       null, null, null, null, null, null, null, null, null, 
       null, null, null, null, null, null, null, null, null, 
       null, null, null, null, null, null 
    ] 

我不知道为什么是Districtnull对象的数组。我期待看到district names。有什么想法吗?

+0

什么是'ctv'变量?它有'区'属性吗?您是否以任何大写字母开头的财产? – 2012-08-05 07:47:58

+0

'ctv'是包名,'District'是域名。我没有任何以大写字母开头的财产。 – cybertextron 2012-08-05 13:59:51

回答

1

你确定它们是空的吗?或者是toString()方法返回null"null"

+0

它来自'<%println ctv.District.list(); %>'.. – cybertextron 2012-08-05 02:58:49

+0

我有一个'公共字符串的ToString(){ \t \t名 \t}'的'Stream'类,但这不是理由 – cybertextron 2012-08-05 03:02:59

+0

你怎么知道的?怎么样尝试'println ctv.District.list()。collect {it? “(名称:$ it.name,id:$ it.id)”:“N00LL”}'? – 2012-08-05 14:37:22

0

你也许修改过区吗?假设它是一个域对象,并且您处于开发模式,grails将重置内存数据的任何自定义加载。在这种情况下重新启动可能会解决问题。

+0

迈克尔,领域对象没关系......我不知道为什么我得到那些空对象。只是为了好奇,数组中的'null'对象的数量等于'Districts'的数量。 – cybertextron 2012-08-05 07:23:09

相关问题