(不是答案,而是两个建议,我需要格式化;安德里亚的答案是正确的。)
为了你自己和后面的人的理智,把这块 JSP 变成一行:
<s:iterator value="themes">
<tr>
<s:set var="currTheme" value="%{userTheme == themeName ? 'red' : 'green'}"/>
<td bgcolor="${currTheme}">Cell content</td>
</tr>
</s:iterator>
考虑使用以主题命名的 CSS 而不是内联 CSS,并大致完全避免它:
td.theme1 {
background-color: red;
}
td.theme2 {
background-color: green;
}
td.theme3 {
background-color: #daa520;
}
(假设主题名为“theme1”、“theme2”、“theme3”,但这不相关。)
<table class="themed-table">
<s:iterator value="themes">
<tr>
<td class="${themeName}">Cell content</td>
</tr>
</s:iterator>
</table>
将样式信息“向上”移动一个级别会更好,例如table.theme1 td
,但是您明白了。这样做可以在主题信息的来源等方面提供很大的灵活性。