Grails sitemesh 是不是有任何解决方法不支持带有开放 HTML 正文标记的 if 语句
Posted
技术标签:
【中文标题】Grails sitemesh 是不是有任何解决方法不支持带有开放 HTML 正文标记的 if 语句【英文标题】:Are there any workarounds for Grails sitemesh not supporting if statements with open HTML body tagsGrails sitemesh 是否有任何解决方法不支持带有开放 HTML 正文标记的 if 语句 【发布时间】:2016-06-18 10:41:59 【问题描述】:我有一个带有以下代码的 GSP..
<g:if test="$'Ethan Hunt'.equals(agentName)">
<body>
Secret Mission
</g:if>
Unclassified stuff
</body>
现在这给出了一个例外..
org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException:
Grails tag [sitemesh:captureBody] was not closed
根据this,在使用sitemesh 进行布局的Grails 中不支持这种用法,唯一的解决方法是将sitemesh.preprocess 配置设置为false。
但是那个帖子已经相当老了,所以我想知道现在是否有更好的解决方法?
当然,一个明显的方法是重构代码以将 if 检查移到正文中,但假设这不是一个选项(此示例是我的实际代码的简化,其中此重构选项不起作用)。
是否有任何其他选项可以避免此异常但仍保留此代码?
【问题讨论】:
来个不简化的例子怎么样? 【参考方案1】:除了重构代码或关闭预处理(这对性能影响很大)之外,没有更好的解决方法。
从那时起,Sitemesh 和 Grails 对 Sitemesh 的使用并没有太大变化。
【讨论】:
谢谢 Josh,我想唯一的选择是重构实际代码的痛苦任务。以上是关于Grails sitemesh 是不是有任何解决方法不支持带有开放 HTML 正文标记的 if 语句的主要内容,如果未能解决你的问题,请参考以下文章
html子元素中的grails/sitemesh布局设置属性(ng-app)
是否有任何理由在 grails 中使用通过 TagLibs 公开给定库的 JavaScript 库插件,而不是直接使用它?