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>