2012-11-19 105 views
0

我對面,創建像這樣的GSP文件的鏈接一個常規語法傳來:需要幫助的常規語法

class LoginTagLib { 
def loginControl = { 
out << """[${link(action:"login",controller:"user"){"Login"}}]""" 
}} 

我知道它最終會變成這樣的HTML:

<a href="/racetrack/user/login">Login</a> 

不過,也有語法2部分,我不明白:

  1. 我不明白${link(action:"login",controller:"user"){"Login"}}

    • 我得到的$(),這是用於字符串插值。
    • 我也得到link(action:"login",controller:"user"),只有2個參數傳入link
    • 但是{"Login"}在做什麼?
  2. 我不明白,是用來包圍整個事情"""[ ]""",我試圖帶走一對",但它wounldn't工作了。所以它證明了它的意義。

有人幫助擺脫了一些光?

感謝

回答

2
  1. 在Groovy中,如果一個函數的最後一個參數是可以在更改此語法foo(arg1, arg2, ..., { ... })foo(arg1, arg2, ...) { ... }封閉。這是發生在這裏,最後一個參數link()是一個封閉,應該評估鏈接的文本表示
  2. '''和'''允許多行字符串。 「」「」「」是相同的,但也支持變量替換
+0

謝謝!我現在明白了 –