在Grails taglib中使用<<

Rya*_*nch 6 grails groovy

在Grails taglib中,我看到:

out << 'some html'
Run Code Online (Sandbox Code Playgroud)

我也看到了:

out << body() << 'some html'
Run Code Online (Sandbox Code Playgroud)

有什么不同?

谢谢

Bur*_*ith 17

第一个将字符串输出到响应.第二个将标记的主体呈现给响应,然后还呈现字符串.并非所有标签都有一个主体,因此第二个标签更为罕见.例如<g:img src='foo.gif'/>,没有身体,但<g:ifLoggedIn>Welcome Back</g:ifLoggedIn>确实如此.

当你定义一个标签闭包时,它有一个参数,通常是'attrs'或两个,通常是'attrs'和'body'.这些名字并不重要,它们只是合理的默认值.该body参数将是当它被调用的方法等呈现标签的内容内的闭合(即body())