Fork me on GitHub
Edit on GitHub

subset

Description

NOTE: JSP-TAG

A tag that takes an iterator and outputs a subset of it. It delegates to {@link org.apache.struts2.util.SubsetIteratorFilter} internally to perform the subset functionality.

Parameters

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
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);
          }
      };
      }
  }

 <!-- s: List basic -->
    <s:subset source="myList">
       <s:iterator>
          <s:property />
       </s:iterator>
    </s:subset>

 <!-- B: List with count -->
    <s:subset source="myList" count="3">
       <s:iterator>
           <s:property />
       </s:iterator>
     </s:subset>

 <!--  C: List with start -->
      <s:subset source="myList" count="13" start="3">
         <s:iterator>
           <s:property />
         </s:iterator>
      </s:subset>

 <!--  D: List with var -->
      <s:subset var="mySubset" source="myList" count="13" start="3" />
      <%
          Iterator i = (Iterator) pageContext.getAttribute("mySubset");
          while(i.hasNext()) {
      %>
      <%=i.next() %>
      <%  } %>

  <!--  D: List with Decider -->
      <s:subset source="myList" decider="myDecider">
             <s:iterator>
                  <s:property />
             </s:iterator>
      </s:subset>