抱歉grails / gsp noob在这里。我正在尝试修复一个在某些文本之前总是插入空格的错误。
如果出现以下情况,则只显示文本:
<g:elseif test="${index > 0 && merch <= transaction.Transactions.size() - 2}">
, ${trans.name}
</g:elseif>
在指挥官之前始终显示空格。为什么?我如何摆脱空间?
答案 0 :(得分:4)
为什么?
因为开头elseif
标记和逗号之间有空格(换行符)。
如何摆脱空间?
将逗号直接放在开始标记之后,而不是放在下一行。您可以通过在标签内而不是在标签之后移动换行来实现此目的:
<g:elseif test="${index > 0 && merch <= transaction.Transactions.size() - 2}"
>, ${trans.name}</g:elseif>
或使用评论
<g:elseif test="${index > 0 && merch <= transaction.Transactions.size() - 2}"><%--
--%>, ${trans.name}<%--
--%></g:elseif>
您可能会发现需要使用类似的技巧来压缩</g:if>
和<g:elseif>
标记之间以及<g:if>
之前的空格。如果这一切看起来有点笨拙,你可能更喜欢使用Groovy代码而不是GSP标签作为条件
stuff before<%
if(something) {
%>some content<%
} else if(index > 0 && merch <= transaction.Transactions.size() - 2) {
%>, ${trans.name}<%
} else {
%>something else<%
}
%>