2011-08-24 63 views
2

的谷歌Plusone精选代码如下所示:<g:plusone size="medium"></g:plusone>Grails和谷歌Plusone精选

不幸的是,在Grails的世界, “G:” 被保留。

我相信你可以修改Grails库,但我正在寻找一个更简单的方法。 我该如何简单地让Grails不要把这个字符串分开?

+2

为什么不使用[HTML代码+1(http://code.google.com/apis/+1button/),而不是无效的,伪命名空间, XMLish版本? – Quentin

+0

我不知道HTML版本,现在测试它,你应该回答 –

+0

你是什么意思'g:'是保留的?对于taglib命名空间? –

回答

3

我会回答我的问题,并给向Quentin发表了评论,但没有写出答案(如果您发布答案,我会选择您作为正确答案)。

有一个HTML版本:

<div class="g-plusone" data-size="medium"></div> 
0

那么,唯一的解决方案是更改您正在使用的taglib。

如果您使用的标签库,你必须做的唯一的事情是添加静态属性命名命名空间你想要的名称,如下面的例子:

static namespace = google1 
1

或者你可以在你的GSP文件输出这样的:

${'<g:plusone annotation="inline" href="http://www.anythinggoeshere_xyz.com"></g:plusone>'} 
0

taglib solution by James Williams大楼,我才得以呈现+1按钮这个标签库,这是我在我的标签库文件夹命名GooglePlusOneTagLib.grooovy:

class GooglePlusOneTagLib { 

    def plusone = { attrs, body -> 
     out << "<g:plusone "+(attrs.size ? "size=${attrs.size}" : "") +"></g:plusone>" 
    } 

    def plusoneScript = { attrs, body -> 
     out << '''<script type="text/javascript"> 
        (function() { 
        var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; 
        po.src = 'https://apis.google.com/js/plusone.js'; 
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); 
        })(); 
        </script>''' 
    } 

} 

和则y OU只使用这些标签在你的GSP

<g:plusone size="medium"></g:plusone> 
<g:plusoneScript /> 
+0

看完之后,我更喜欢纯粹的HTML解决方案(http://stackoverflow.com/a/7219746/421356),但我会离开我的,因为它仍然有效。 –