这是我以前在 JSP 中遇到过的 GSP 问题/琐事,我正在寻找最干净的解决方案。
本质上,我使用 for 循环(<g:each>
在 GSP 中)遍历项目列表并为每个项目输出一个 HTML 节点:
<g:each status="i" var="item" in="items">
<span class="item">${item}</span>
</g:each>
所有<span>
节点都包含一个 CSS 类item
,但我希望第一个节点也包含一个selected
类。因此,我将代码更新为:
<g:each status="i" var="item" in="items">
<g:if test="${i == 0}">
<span class="item selected">${item}</span>
</g:if>
<g:else>
<span class="item">${item}</span>
</g:else>
</g:each>
这似乎是一种复杂的方法,但是因为我复制了很多代码。另一种解决方案是使用自定义标签库并将当前索引传递给它:
<g:each status="i" var="item" in="items">
<span class="item <g:getItemClass index='${i}' />">${item}</span>
</g:each>
selected
当 index 等于 0 时,标签库将返回,否则它不会返回任何内容。同样,这增加了复杂性。
其他可能的解决方案:
- 在你的 CSS 类名中使用索引(非常混乱)
- 设置一个类名var()。不比自定义标签 imo 好。
- 使用小脚本(没办法)
还有其他干净简单的方法吗?
谢谢!