How to conditionally set a css class with struts2
I need to display a sequence of <tr>
elements with a <struts:iterator>
tag and set a class of each <tr>
conditionally.
Let's say I have a list items = {1, 2a, 2b, 3, 4, 6, 7, 9a, 9b}
, and also two other lists duplicates = {2b, 9b}
and jumps = {6, 9a}
. How can I iterate over those items, d开发者_运维问答isplay them in an HTML element and set a class of that element to duplicate
and/or jump
depending if the corresponding list contains that item?
You can refer to this website, it's detailing the iterator tag of Struts2
You could add a method boolean isDuplicated(String itemid)
to your action and code something as :
<s:iterator id="item" value="items">
<tr <s:if test="isDuplicated(#item)"> class='duplicated' </s:if> >
You get the idea. You could even (though some purist might object that you put some presentation related code in you action) code a method that gives you the "class" of each item
<s:iterator id="item" value="items">
<tr class='<s:property value="getClassForItemDuplicated(#item)" />'>
精彩评论