在Grails框架中何时在标记属性值中使用表达式${}?
我想知道如何知道何时使用表达式${}传递属性值,以及在何处不传递 例如,在下一个标记调用中,为什么在Grails框架中何时在标记属性值中使用表达式${}?,grails,groovy,Grails,Groovy,我想知道如何知道何时使用表达式${}传递属性值,以及在何处不传递 例如,在下一个标记调用中,为什么template和model属性值不带${}传递,而collection属性值带${}传递 我想学习如何阅读本主题中的grails标记文档。仅将${}用于需要计算的表达式,而不是字符串文本 <g:render template="displaybook" model="['book':book,'author':author]" collection="${books}" />
template
和model
属性值不带${}传递,而collection
属性值带${}传递
我想学习如何阅读本主题中的grails标记文档。仅将
${}
用于需要计算的表达式,而不是字符串文本
<g:render template="displaybook" model="['book':book,'author':author]" collection="${books}" />
“displaybook”是一个文本字符串,而不是一个变量引用,因此将其放在${}
中没有意义
“books”是一个变量引用,因此将其放在${}
中是有意义的
当传递像['book':book,'author':author]
这样的文本集合时,会有特殊的处理。解析器将识别周围的[…]
并将内容作为表达式而不是字符串文本进行计算,因此那里不需要${}
我希望这会有所帮助。这个
${}
只用于需要计算的表达式,而不是字符串文本
<g:render template="displaybook" model="['book':book,'author':author]" collection="${books}" />
“displaybook”是一个文本字符串,而不是一个变量引用,因此将其放在${}
中没有意义
“books”是一个变量引用,因此将其放在${}
中是有意义的
当传递像['book':book,'author':author]
这样的文本集合时,会有特殊的处理。解析器将识别周围的[…]
并将内容作为表达式而不是字符串文本进行计算,因此那里不需要${}
我希望这会有所帮助。看,如果像上面的答案所说的那样,您使用${}来评估某个东西,例如:“${book.author.name.toString()}”,将返回“Stephen King”,但是如果您像这样放置“book.author.name.toString()”,结果将是“book.author.name.toString()”。此外,符号[something:4,otherSomething:“what up”]在java中与此相同:
LinkedTreeMap<String,Object> map = new LinkedTreeMap<String,Object>();
map.put("something",4);
map.put("otherSomething","whats up");
这意味着您可以使用variables=D中的运行时键
这就是我希望帮助的看到,如果像上面的答案所说的那样,你使用${}来评估某个东西,例如:“${book.author.name.toString()}”,将返回“Stephen King”,但是如果你像这样放置“book.author.name.toString()”,那么结果就是“book.author.name.toString()”。此外,符号[something:4,otherSomething:“what up”]在java中与此相同:
LinkedTreeMap<String,Object> map = new LinkedTreeMap<String,Object>();
map.put("something",4);
map.put("otherSomething","whats up");
这意味着您可以使用variables=D中的运行时键
就是这样希望我能帮上忙