Динамический вызов метода Grails с переменным параметром - PullRequest
0 голосов
/ 21 сентября 2011

в контроллере Grails: Как я могу вызвать динамический метод, например Domain.findByName(params.name), а не Domain.findByName("X")?

1 Ответ

1 голос
/ 21 сентября 2011

Ознакомьтесь с некоторыми Турникетами Грааля и более конкретно, как работает тег формы Грааля здесь ! Вам нужно понять, как работает основной поток модели MVC, чтобы насладиться мощью Grails! Потратьте некоторое время, чтобы узнать это, или вы просто потеряли и разочарованы.

В вашем примере params.name будет обычно заполняться формой сообщения с использованием тега ввода, например g: textField .

Если вы хотите увидеть, какие значения включены в params object для конкретного вызова контроллера, вы можете сделать что-то вроде ....

class IceCreamController{

   def eatMoreIceCream = {
       println("the params are ${params}"); //<-- prints a Map of the values to the stdout

       if (!params.name){
           redirect(action:"showError",params:[message:"You have no name!"])
       }else{
           def iceCream = IceCream.findByName(params.name)

           if (iceCream){
              redirect(action:"showIceCream",params:[id:iceCream.id])
           }else{
               redirect(action:"showError",params:[message:"no ice cream for name ${params.name}."])
           }

       }

   }

}

Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...