...
Controls tags provide the ability to manipulate collections and conditionally produce content.
Examples
If, ElseIf, Else Tag
Preform basic condition flow. 'If' tag could be used by itself or with 'Else If' Tag and/or single/multiple 'Else' Tag.
@see META-INF/webworl.tld
Attribute | Type | Required |
---|---|---|
test | Boolean | Yes |
Code Block |
---|
<ww:if test="%{false}">
<div>Will Not Be Executed</div>
</ww:if>
<ww:elseif test="%{true}">
<div>Will Be Executed</div>
</ww:elseif>
<ww:else>
<div>Will Not Be Executed</div>
</ww:else>
|
Attribute value is treated as Ognl expression and evaluated on the webworks stack (OgnlValueStack) and the result is expected to be a boolean. In this case 'true' has special meaning in Ognl expression which gets evaluated as a boolean true.
Append Tag
// TODO: this tag will be implemented soon
Generator Tag
// TODO: this tag will be implemented soon
Merge Tag
// TODO: this tag will be implemented soon
Sort Tag
Sort a List according to the comparator supplied.
Attribute | Type | Required | Description |
---|---|---|---|
source | Object (List) | No | Source of List to be sorted. If none is supplied, will use the 'top' of the stack |
comparator | Object (Comparator) | Yes | The comparator to sort the source |
id | String | No | If supplied will be used as the pageContext key where the resultant sorted List to be stored in |
NOTE: Sort Tag will ALWAYS puch the result into the stack and pop it off at the end of the tag.
Code Block | ||
---|---|---|
| ||
<!-- METHOD A: Use Sort Tag without id --> <ww:sort comparator="%{comparator}" source="%{source}"> <ww:iterator> <ww:property /><br/> </ww:iterator> </ww:sort> <!-- METHOD B: Use Sort Tag with id --> <ww:sort id="mySortResult" comparator="%{comparator}" source="%{source}" /> <% List l = (List) pageContext.getAttribute("mySortResult"); for (Iterator i = l.iterator(); i.hasNext(); ) { out.println(i.next()); } %> |
Code Block | ||
---|---|---|
| ||
public class SortAction extends ActionSupport {
private static final long serialVersionUID = -556501494127336128L;
@Override
public String execute() throws Exception {
return "done";
}
public Comparator getComparator() {
return new Comparator<Integer>() {
public int compare(Integer o1, Integer o2) {
return o1 - o2; // use Tiger's auto-boxing
}
};
}
public List getSource() {
List<Integer> l = new ArrayList<Integer>();
l.add(new Integer(5));
l.add(new Integer(2));
l.add(new Integer(3));
l.add(new Integer(1));
l.add(new Integer(6));
l.add(new Integer(4));
l.add(new Integer(7));
return l;
}
}
|
Code Block | ||
---|---|---|
| ||
...
<action name="sortAction" class="tmjee.testing.SortAction">
<result name="done">sortTag.jsp</result>
</action>
...
|
The above makes uses of sort tag to sort a List defined in SortAction.java. METHOD A makes use of the sorted list that is pushed into the stack and uses the nested Iterator Tag to iterate over the sorted list and print its elements. In METHOD B the supplied id attribute allows the Sort Tag to store the sorted list into the page context and then retrieve the sorted list and display its content using scriptlet.
Subset Tag
Iterator Tag
Iterator will iterate over a value. An iterable value can be either of: java.util.Collection, java.util.Iterator, java.util.Enumeration, java.util.Map, array.
...