【问题标题】:Grails: Why is <g:link> not emitting links?Grails:为什么 <g:link> 不发出链接?
【发布时间】:2014-02-24 13:20:14
【问题描述】:

我有:

<td>
   <g:link controller="dashboard" action="view">Dashboard</g:link>
   <a href="fkd.co">Hello</a>
</td>

结果是:

仪表板Hello

【问题讨论】:

  • 如果你有控制器和视图,g:link 应该是正确的。即使没有控制器也是正确的。你能提供更多信息吗?也许你在配置中有编解码器?
  • 查看生成的源代码。在控制台视图中查找错误。

标签: grails gsp


【解决方案1】:

看起来您的 gsp 页面根本没有编译。在网络浏览器中检查源代码。您应该使用 run-app 命令运行嵌入式服务器,然后访问该页面。

【讨论】:

    【解决方案2】:

    我刚刚发现 &lt;g:link&gt;overwritten 并且仅在登录用户有权访问该链接时创建链接,否则会发出正文。代码如下:

    def link = { attrs, body ->
    
            def url = "/${pageScope.controllerName}/${attrs.action}"
    
            if( !securityService.isLoggedIn() ||
                securityService?.hasAccessToUri("/${pageScope.controllerName}/${attrs.action}") ) {
    
                def originalTagBean = grailsApplication.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib')
    
                originalTagBean.link.call(attrs, body)
            } else {
                out << body()
            }
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 2018-03-31
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      相关资源
      最近更新 更多