subset
Please make sure you have read the Tag Syntax document and understand how tag attribute syntax works.
Description
A tag that takes an iterator and outputs a subset of it. It delegates to org.apache.struts2.util.SubsetIteratorFilter
internally to perform the subset functionality.
Takes an iterator and outputs a subset of it.
Attributes
| Dynamic Attributes Allowed:false | |||||
| Name | Required | Default | Evaluated | Type | Description | 
|---|---|---|---|---|---|
| count | false | false | Integer | Indicate the number of entries to be in the resulting subset iterator | |
| decider | false | false | org.apache.struts2.util.SubsetIteratorFilter.Decider | Extension to plug-in a decider to determine if that particular entry is to be included in the resulting subset iterator | |
| performClearTagStateForTagPoolingServers | false | false | false | Boolean | Whether to clear all tag state during doEndTag() processing | 
| source | false | false | String | Indicate the source of which the resulting subset iterator is to be derived base on | |
| start | false | false | Integer | Indicate the starting index (eg. first entry is 0) of entries in the source to be available as the first entry in the resulting subset iterator | |
| var | false | false | String | The name to store the resultant iterator into page context, if such name is supplied | |
Examples
public class MySubsetTagAction extends ActionSupport {
     public String execute() throws Exception {
        l = new ArrayList();
        l.add(new Integer(1));
        l.add(new Integer(2));
        l.add(new Integer(3));
        l.add(new Integer(4));
        l.add(new Integer(5));
        return "done";
     }
     public Integer[] getMyArray() {
        return a;
     }
     public List getMyList() {
        return l;
      }
     public Decider getMyDecider() {
         return new Decider() {
             public boolean decide(Object element) throws Exception {
                 int i = ((Integer)element).intValue();
                 return (((i % 2) == 0)?true:false);
             }
         };
     }
}
Basic example
<s:subset source="myList">
   <s:iterator>
      <s:property />
   </s:iterator>
</s:subset>
List with count
<s:subset source="myList" count="3">
   <s:iterator>
       <s:property />
   </s:iterator>
</s:subset>
List with start
<s:subset source="myList" count="13" start="3">
   <s:iterator>
     <s:property />
   </s:iterator>
</s:subset>
List with var
<s:subset var="mySubset" source="myList" count="13" start="3" />
<%
    Iterator i = (Iterator) pageContext.getAttribute("mySubset");
    while(i.hasNext()) {
%>
<%=i.next() %>
<%  } %>
List with Decider
<s:subset source="myList" decider="myDecider">
       <s:iterator>
            <s:property />
       </s:iterator>
</s:subset>
