在 Grails 中创建自定义条件 TagLib

发布于 2024-10-22 00:17:58 字数 743 浏览 0 评论 0原文

我正在尝试在 grails 中创建一个条件标签库来确定是否显示用户头像(我基于此处找到的 ifLoggedIn 标签编写代码: http://www.grails.org/AuthTagLib

我的标签库看起来像这样:

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 时,“找到头像”是正确显示(直接来自标签库)但“找到配置文件!”不是。

标签库中的 body{} 没有在 GSP 中显示正文有什么原因吗?

有什么想法可能会出错吗?

谢谢!

I am trying to create a conditional taglib in grails to determine whether or not to display a user Avatar (I based the code on the ifLoggedIn tags found here: http://www.grails.org/AuthTagLib )

My taglib looks like this:

def ifProfileAvatar = {attrs, body ->
  def username = session.user.login
  def currentUser = Account.findByLogin(username)
  if (currentUser.profile && currentUser.profile.avatar) {
    out << "avatar found"
    body{}
  }
}

And in my GSP I use the tag like this:

<g:ifProfileAvatar>
<br/>profile found!<br/>
</g:ifProfileAvatar>

When I navigate to the GSP, "avatar found" is being displayed correctly (directly from the taglib) but "profile found!" is not.

Is there any reason that the body{} in the taglib is not showing the body in the GSP?

Any ideas where it might be going wrong?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱的十字路口 2024-10-29 00:17:58

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 {}
  }
}

参见 文档中的此页面了解更多示例

Wrong sort of braces after body, I think it should be:

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 {}
  }
}

See this page in the documentation for more examples

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文