我对Grails和Groovy来说很陌生,发现奇怪的行为。 在我的控制器类中的一个我有以下list()方法:引擎盖下的Grails list()方法
def list() {
[priceListInstanceList: PriceList.list(), priceListInstanceTotal: PriceList.count()]
}
,当我从我的GSP摹调用此:选择一切正常:
<g:select name="priceListId" from="${vladar.PriceList.list()}" optionKey="id" optionValue="priceListName" />
现在,如果我要一种新的方法完全相同的像列表()和名称改为列表2()
def list2() {
[priceListInstanceList: PriceList.list(), priceListInstanceTotal: PriceList.count()]
}
和变化克:相应地选择:
<g:select name="priceListId" from="${vladar.PriceList.list2()}" optionKey="id" optionValue="priceListName" />
我得到一个错误信息:
Class
groovy.lang.MissingMethodException
Message
No signature of method: vladar.PriceList.list2() is applicable for argument types:() values: [] Possible solutions: list(), list(java.util.Map), last(), last(java.lang.String), last(java.util.Map), first()
看起来有一些魔法与引擎盖下list()
方法。 我想在g:select
中获得具体的选项。我写了控制器部分,它呈现得很好,但是当我试图返回值给gsp时得到相同的消息。 看来这是一般问题,而不是我的控制器。 任何想法如何解决list2所以它会显示在g:select
? 谢谢。
Hello Igor。感谢您的指导。现在很清楚我犯了什么错误。稍后我会做出更改。问候, – Robert