2012-11-19 103 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

谢谢!我现在明白了 –