我是Grails的新手。有四个基本的域类说A,B,Q,T,另一个是事务类Tr。只有一个名为Trcontroller的控制器。类和控制器如下:
class A {
String aName
String aId
static constraints = {
aName(nullable:false, blank:false)
}
static belongsTo =[tr:Tr]
public String toString() { userName }
String getname() { userName() }
}
class B{
String b
static constraints = {
}
static belongsTo =[q:Q]
}
class Q{
String q
String qtype
static constraints = {
}
static belongsTo =[b:B]
}
class T {
String t
static constraints = {
}
static hasMany = [q:Q]
}
class Tr {
A a
B b
Q q
Q qtype
T t
static constraints = {
}
}
class TrController {
def index() { }
def dropdown(){}
def userlist=User.get(params.id)
}
现在我想在dd.gsp页面中从A类创建简单的下拉列表。代码如下:
<g:select name="User_name" from="${UserInstance.toString() }" value="${UserInstance?.toString()} }"/>
在更改下拉值时,结果将显示在同一页面中的所有域类中。
尝试创建下拉列表(在dd.gsp页面上),但它显示错误:
Class: groovy.lang.MissingMethodException
Message : No signature of method: practice00008.TrController.getParams() is applicable for argument types: () values: []
请指导我如何解决这些问题。
答案 0 :(得分:1)
def userlist=User.get(params.id)
。不是请求。
您必须为您创建一个操作dd.gsp
(我猜是/dd
?或者您当前的dropdown
操作可能会执行此操作?然后将以下代码放入此操作中),然后加载这里的数据如下:
def dd() {
def userlist = User.get(params.id)
render view: 'dd', model: [userlist: userlist]
}
或简单地说:
def dd() {
[userlist: User.get(params.id)]
}