是否可以在不编写Groovy代码和将HTML嵌入代码的情况下创建自定义GSP标记(更多的是JSP风格的创建自定义标记的方式)?
我有一个菜单,其中包括一些项目,比如:
<li class="menu-item">
<g:link controller="someController" action="someAction" id="123">
My Item Text
</g:link>
</li>我想要创建一个新的GSP标签,以简化我的页面,因为它将重复多次。所以,我想创建这样的东西:
<my:menuitem controller="someController" action="someAction" id="123" text="My Item Text"/>我知道我可以创建一个自定义标签库,并使用Groovy代码创建标记。但是,我真的不喜欢将HTML嵌入到Groovy文件中的想法。在过去,我没有编写Java代码就在JSP文件中创建了JSP标记库。到目前为止,查看Grails的文档,我还没有看到类似的样式。
另外,可以在GSP中使用自定义JSP标记吗?
发布于 2013-11-30 03:31:35
在没有Taglib的情况下,我可以看到做您想做的事情的唯一方法是使用g:render并将您的值传递给模型属性。如下所示:
<g:render template="myTemplate" model="[controller: 'someController', action: 'someAction', id: 123, text: 'My Text Item']" />然后,在您的实际模板中,您将得到以下内容:
<li class="menu-item">
<g:link controller="${controller}" action="${action}" id="${id}">
${text}
</g:link>
</li>发布于 2013-11-30 01:07:10
您可以使用template通过render标记来实现这一点,如文档的“视图和模板”部分所解释的那样。值得注意的是,您将模板文件命名为前导下划线,但在没有下划线的render标记中引用它。
另一种选择是使用您所描述的自定义标记库,但是使用Groovy MarkupBuilder创建HTML。它需要一些习惯(语法有点奇怪),但一旦你做了几次,它就变成了第二天性。
https://stackoverflow.com/questions/20294247
复制相似问题