GRAILS:findALL()vs FindBy---(params.id)
大家好, 我正在尝试将参数从URL传递到findAll()方法 LINE3我使用findAll()定义鼠标 LINE2def house将在我进入页面时引入参数特拉华: House将只显示一个实例,而不是列表。。是否有任何方法可以传递url而不是[“特拉华”]?(请参见第3行)谢谢:) 工作代码+1@DaniloGRAILS:findALL()vs FindBy---(params.id),grails,Grails,大家好, 我正在尝试将参数从URL传递到findAll()方法 LINE3我使用findAll()定义鼠标 LINE2def house将在我进入页面时引入参数特拉华: House将只显示一个实例,而不是列表。。是否有任何方法可以传递url而不是[“特拉华”]?(请参见第3行)谢谢:) 工作代码+1@Danilo def county() { def house = Home.findAllByCounty (params.id) //sends only coun
def county() {
def house = Home.findAllByCounty (params.id) //sends only county specified thru URL e.g. http://localhost:8080/TestAPP/home/county/DELAWARE
if (!house) {
response.sendError(404)
} else {
[house:house ]
}
}
findBy*
将返回最多一行,如果要获取所有行,请使用findAllBy*
为了理解Grails将如何使用URL,您必须了解conf/UrlMappings.groovy
。您可能会发现这样的情况:
static mappings = {
"/$controller/$action?/$id?(.$format)?"{
}
}
这意味着当您调用TestApp/home/country/DELAWARE
时,Grails试图做的是使用home控制器(HomeController
),调用country方法(def country(){…}
)并将DELAWARE
作为id
传递
若HomeController
的县内方法具有以下条件,则该方法应能正常工作:
def filteredInstances = Home.findAllByCounty(params.id)
我不明白你想要什么。诚实的FindallbyCounty(params.id)做到了,谢谢+1.
def filteredInstances = Home.findAllByCounty(params.id)