2015-09-10 3 views
0

Приветствие всем,Grails: FindAll() против FindBy --- (params.id)

Я стараюсь передать параметры из URL к методу FindAll().

LINE3 Я использую findAll() для определения мыши.

LINE2 Защиту дом принесет в параметре Delaware, когда я иду на страницу: http://localhost:8080/TestApp/home/county/DELAWARE

Дом будет показывать только один экземпляр вместо списка .. есть в любом случае, чтобы передать URL вместо [» ДЕЛАВЭР"]? (См строка 3) спасибо :)

def county() { 
    def house = Home.findByCounty(params.id) //sends only user related address to view 
    def mouse = Home.findAll("from Home h where h.county= ?", ["DELAWARE"]); 
    if (!house) { 
    response.sendError(404) 
    } else { 

    [house:house, mouse:mouse ] 
    } 
} 

Рабочий код +1 @Danilo

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 ] 
     } 
    } 
+0

Я не понял, что вы хотите. честно – injecteer

ответ

2

findBy* возвратит более одной строки, если вы хотите получить все строки использовать findAllBy*

Чтобы понять, как URL будет использоваться Grails, вы должны посмотреть на conf/UrlMappings.groovy. Вы можете найти что-то вроде этого:

static mappings = { 
    "/$controller/$action?/$id?(.$format)?"{ 
    } 
} 

это означает, что при вызове TestApp/home/county/DELAWARE, что Grails пытается сделать, это использовать домашний контроллер (HomeController), вызывая метод графства (def county(){...}) и проходящей DELAWARE в id.

Это должно работать правильно, если внутри метода уездного из HomeController у вас есть:

def filteredInstances = Home.findAllByCounty(params.id) 
+0

findAllByCounty (params.id) сделал это, СПАСИБО! +1 – edDatNewb

Смежные вопросы