2013-07-10 7 views
0

Это, вероятно, простая и более Java-связь, чем grails, но я немного потерян и не уверен, где даже начать смотреть на это, я искал ее, но не совсем уверен, что Я буду, так по достоинству оцените указатель, если возможно, пожалуйста!Доступ к определенным параметрам Grails Params в контроллере

В приложении grails у меня есть форма, которую я сохраняю, все хорошо и хорошо. В контроллере я вижу список параметров, которые он возвращает с помощью простого println, и когда я хочу найти определенное значение, в настоящее время я делаю params.each, а затем сравниваю ключ с предварительно определенной строкой, чтобы найти ту, которую я хочу, мой вопрос: -

Могу ли я, и как бы я, конкретно сказать «мне получить значение параметра с ключом„банан“, вместо того, чтобы перебрать весь список, чтобы найти его

? Также существует способ создания нового набора вторичных параметров или просто еще один простой старый элемент словаря (это правильный термин?), Где я использую регулярное выражение, чтобы сказать «дайте мне все элементы, чей ключ соответствует шаблону» XYZ «?

Это, вероятно, не имеет большого значения скорости, поскольку параметры никогда не бывают такими большими, но было бы неплохо сделать вещи более эффективными там, где это возможно.

Любая обратная связь очень ценится!

ответ

1

Для первого вопроса, чтобы получить параметр «банан», вы должны использовать:

params.banana 

Для второго, найти все с регулярным выражением:

def matched = params.findAll { it.key =~ /XYZ/ } 
//or 
Pattern p = ~/XYZ/ 
def matched = params.findAll { p.matcher(it.key).matches() } 
+0

Отлично большое спасибо Igor вот именно то, что мне было нужно! Чтобы задать еще один вопрос, элементы, которые я ищу, будут читать события [n] .id, и я использую следующее, но ничего не возвращается, где я ошибаюсь? \t \t ' \t \t шаблон р = ~/(события.) (\ D +). (\ W +)/ \t \t Защиту совпадающая = params.findAll {\t \t \t \t p.matcher (it.key) .matches()} \t \t \t \t matched.each {ключ, ценностно> \t \t \t Println ("найден!" + клавиша + "" + значение) \t \t \t} ' – MorkPork

+0

по электронной почте Ой игнорировать т шляпа получается, мой рисунок был неправильным! : S Большое спасибо, Игорь очень ценит! :) – MorkPork

1

Там в PARAMS объект, который вы можете использовать. Например, с someurl.com?myparam=test вы можете получить доступ к нему с «params.myparam»

Больше информации здесь: http://grails.org/doc/2.2.x/ref/Controllers/params.html

+0

Извините, я, вероятно, немного толстый, я проверил ссылку, но не понял, как я могу делать то, что я хочу, я хочу сделать допрос внутри контроллера и подумал, есть ли способ чтобы получить конкретное значение параметра (предположим, что я знаю, каково будет ключевое значение), не проверяя каждый по очереди ... – MorkPork

+0

Игнорируйте вышеизложенное, я идиот, спасибо за указатели! :) – MorkPork

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