2013-07-10 64 views
0

這可能是一個簡單的和更多的Java相關的比Grails,但我有點迷路,不知道從哪裏開始尋找這個,我一直在搜索,但我不知道什麼是什麼我以後,如果可能請欣賞指針!在控制器中訪問特定的Grails參數

在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

優秀千恩萬謝伊戈爾那正是我需要的!只是再問一個問題,我正在查找的項目將讀取事件[n] .id,我使用以下內容,但是沒有任何內容會被返回,我在哪裏出錯? \t \t' \t \t圖案P =〜/(事件。)(\ d +)。(\ W +)/ \t \t DEF匹配= 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

相關問題