org.apache.struts2.components
类 MergeIterator
java.lang.Object
org.apache.struts2.components.Component
org.apache.struts2.components.ContextBean
org.apache.struts2.components.MergeIterator
- 所有已实现的接口:
- Param.UnnamedParametric
public class MergeIterator
- extends ContextBean
- implements Param.UnnamedParametric
Component for MergeIteratorTag, which job is to merge iterators and successive
call to the merged iterator will cause each merge iterator to have a chance to
expose its element, subsequently next call will allow the next iterator to expose
its element. Once the last iterator is done exposing its element, the first iterator
is allowed to do so again (unless it is exhausted of entries).
Internally the task are delegated to MergeIteratorFilter
Example if there are 3 lists being merged, each list have 3 entries, the following will
be the logic.
- Display first element of the first list
- Display first element of the second list
- Display first element of the third list
- Display second element of the first list
- Display second element of the second list
- Display second element of the third list
- Display third element of the first list
- Display thrid element of the second list
- Display third element of the thrid list
- id (String) - the id where the resultant merged iterator will be stored in the stack's context
public class MergeIteratorTagAction extends ActionSupport {
private List myList1;
private List myList2;
private List myList3;
public List getMyList1() {
return myList1;
}
public List getMyList2() {
return myList2;
}
public List getMyList3() {
return myList3;
}
public String execute() throws Exception {
myList1 = new ArrayList();
myList1.add("1");
myList1.add("2");
myList1.add("3");
myList2 = new ArrayList();
myList2.add("a");
myList2.add("b");
myList2.add("c");
myList3 = new ArrayList();
myList3.add("A");
myList3.add("B");
myList3.add("C");
return "done";
}
}
<s:merge var="myMergedIterator1">
<s:param value="%{myList1}" />
<s:param value="%{myList2}" />
<s:param value="%{myList3}" />
</s:merge>
<s:iterator value="%{#myMergedIterator1}">
<s:property />
</s:iterator>
This wil generate "1aA2bB3cC".
- 另请参见:
MergeIteratorFilter
,
MergeIteratorTag
构造方法摘要 |
MergeIterator(com.opensymphony.xwork2.util.ValueStack stack)
|
从类 org.apache.struts2.components.Component 继承的方法 |
addAllParameters, addParameter, altSyntax, copyParams, getComponentStack, getParameters, getStack, setActionMapper, setThrowExceptionsOnELFailure, setUrlHelper, usesBody |
MergeIterator
public MergeIterator(com.opensymphony.xwork2.util.ValueStack stack)
start
public boolean start(Writer writer)
- 从类
Component
复制的描述
- Callback for the start tag of this component.
Should the body be evaluated?
- 覆盖:
- 类
Component
中的 start
- 参数:
writer
- the output writer.
- 返回:
- true if the body should be evaluated
end
public boolean end(Writer writer,
String body)
- 从类
Component
复制的描述
- Callback for the end tag of this component.
Should the body be evaluated again?
NOTE: will pop component stack.
- 覆盖:
- 类
Component
中的 end
- 参数:
writer
- the output writer.body
- the rendered body.
- 返回:
- true if the body should be evaluated again
setVar
public void setVar(String var)
- 覆盖:
- 类
ContextBean
中的 setVar
addParameter
public void addParameter(Object value)
- 从接口
Param.UnnamedParametric
复制的描述
- Adds the given value as a parameter to the outer tag.
- 指定者:
- 接口
Param.UnnamedParametric
中的 addParameter
- 参数:
value
- the value