我正在尝试在grails中创建一个条件标记库以确定是否显示用户头像(我基于if http://www.grails.org/AuthTagLib上找到的ifLoggedIn标签上的代码
我的taglib看起来像这样:
def ifProfileAvatar = {attrs, body ->
def username = session.user.login
def currentUser = Account.findByLogin(username)
if (currentUser.profile && currentUser.profile.avatar) {
out << "avatar found"
body{}
}
}
在我的GSP中,我使用这样的标签:
<g:ifProfileAvatar>
<br/>profile found!<br/>
</g:ifProfileAvatar>
当我导航到GSP时,“avatar found”正在正确显示(直接来自taglib),但“找到了个人资料!”不是。
有没有理由说明taglib中的body{}
没有在GSP中显示正文?
任何可能出错的想法?
谢谢!
答案 0 :(得分:10)
在body
之后错误的大括号,我认为它应该是:
def ifProfileAvatar = {attrs, body ->
def username = session.user.login
def currentUser = Account.findByLogin(username)
if (currentUser.profile && currentUser.profile.avatar) {
out << "avatar found"
out << body() // Use () not {}
}
}
有关更多示例,请参阅this page in the documentation