20NN课程网
扫一扫,放到手机桌面

struts中文手册

Struts merge标签语法与示例

Merge标签与Append标签有点相似,不同的是,Append的标签把多个集合按先后顺序组成一个整体,而Merge标签则是把多个集合元素“交叉混合”组成一个新的集合,建议大家直接看示例。

Merge标签属性

Append标签属性
属性名必要属性默认值类型描述
vartrueString组合后放到Action Context中变量的名称,以%{#varname}方式获取这个变量
说明:省略奇葩属性performClearTagStateForTagPoolingServers

Append标签示例

Merge标签需要配合param标签使用,被组合的跌代器由一个或多个param标签传入,具体请看如下示例。

Action代码

//此部分同Append的示例代码一致。 
public class AppendIteratorTagAction extends ActionSupport {

  private List myList1;
  private List myList2;
  private List 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";
  }

  public List getMyList1() { return myList1; }
  public List getMyList2() { return myList2; }
  public List getMyList3() { return myList3; }
}

标签html代码

<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>

输出结果

* 注意:请仔细观察下面的顺序:

1 a A 2 b B 3 c C

Merge标签对Iterator的限制

限制一:

Merge标签同Append标签一样,它们生成的被迭代对象为org.apache.struts2.util.MergeIteratorFilter对象,一但被迭代后,无法再次迭代(或许是我不知道,我没有从MergeIteratorFilter对象里找到对应的Reset方法,知道的朋友可以留言)。

限制二:

无法应用Iterator的start、end、step属性,即使写了也无效。

写一些自己的看法

网站优选

备案:陕ICP备17014144号-5

不良信息举报电话:029-85678878,商务合作短信留言:18291486809,邮箱:yte1@qq.com

『野天鹅』以分享生活智慧为中心,内容包括社保、档案、户籍、学业、商业、理财等,我们希望我们精心编排的内容能为您的日常生活提供真正有效的帮助。

『西安野天鹅网络技术有限公司』