ダウンロードする – リンク://wp-content/uploads/2010/07/Struts2-Merge-Tag-Example.zip[Struts2-Merge-Tag-Example.zip]

Struts 2

merge

タグは、リストまたはマップで作成された少数のイテレータを単一のイテレータにマージするために使用されます。このチュートリアルでは、Struts 2

merge

タグを使用して次のタスクを実行します。

  1. 3つの

    ArrayList

    を1つのイテレータにマージします.

  2. 3つの

    HashMap

    を1つのイテレータにマージします.


  3. ArrayList



    HashMap

    を1つのイテレータにマージします.

2つのイテレータがあるとします。それぞれに2つのエントリがあり、

merge

タグと1つのイテレータをマージした後、エントリの順序は次のようになります。

  1. 最初のイテレータの最初のエントリ.

  2. 2番目のイテレータの最初のエントリ.

  3. 最初のイテレータの2番目のエントリ.

  4. 2番目のイテレータのエントリ.

これはListイテレータにのみ適用されます。イテレータをマップすると、順序はランダムになります。

1.アクション

3つのArrayListと3つのHashMapプロパティを持つActionクラス。

package com.mkyong.common.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.opensymphony.xwork2.ActionSupport;

public class MergeTagAction extends ActionSupport{

    private List<String> list1 = new ArrayList<String>();
    private List<String> list2 = new ArrayList<String>();
    private List<String> list3 = new ArrayList<String>();

    private Map<String,String> map1 = new HashMap<String,String>();
    private Map<String,String> map2 = new HashMap<String,String>();
    private Map<String,String> map3 = new HashMap<String,String>();

    public String execute() {

        list1.add("List1 - 1");
        list1.add("List1 - 2");
        list1.add("List1 - 3");

        list2.add("List2 - 1");
        list2.add("List2 - 2");
        list2.add("List2 - 3");

        list3.add("List3 - 1");
        list3.add("List3 - 2");
        list3.add("List3 - 3");

        map1.put("map1-key1", "map1-value1");
        map1.put("map1-key2", "map1-value2");
        map1.put("map1-key3", "map1-value3");

        map2.put("map2-key1", "map2-value1");
        map2.put("map2-key2", "map2-value2");
        map2.put("map2-key3", "map2-value3");

        map3.put("map3-key1", "map3-value1");
        map3.put("map3-key2", "map3-value2");
        map3.put("map3-key3", "map3-value3");

        return SUCCESS;
    }

   //getter methods...
}

2.タグの例を追加する

3つのArrayList/3 HashMap/1 ArrayList + 1 HashMapを1つのイテレータに結合し、その値をループして出力するための

merge

タグの使用を示すJSPページ。

  • merge.jsp **

<%@ taglib prefix="s" uri="/struts-tags" %>
 <html>
<head>
</head>

<body>
<h1>Struts 2 Merge tag example</h1>

1. Merge 3 ArrayList into a single iterator.
<s:merge var="customListIterator">
     <s:param value="%{list1}"/>
     <s:param value="%{list2}"/>
     <s:param value="%{list3}"/>
</s:merge>
<ol>
<s:iterator value="%{#customListIterator}">
     <li><s:property/></li>
</s:iterator>
</ol>

2. Merge 3 HashMap into a single iterator.
<s:merge var="customMapIterator">
     <s:param value="%{map1}"/>
     <s:param value="%{map2}"/>
     <s:param value="%{map3}"/>
</s:merge>
<ol>
<s:iterator value="%{#customMapIterator}">
     <li><s:property/></li>
</s:iterator>
</ol>

3. Merge ArrayList and HashMap into a single iterator.
<s:merge var="customMixedIterator">
     <s:param value="%{list1}"/>
     <s:param value="%{map1}"/>
</s:merge>
<ol>
<s:iterator value="%{#customMixedIterator}">
     <li><s:property/></li>
</s:iterator>
</ol>

</body>
</html>

3. struts.xml

リンク〜

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <constant name="struts.devMode" value="true"/>

    <package name="default" namespace="/" extends="struts-default">

        <action name="mergeTagAction"
            class="com.mkyong.common.action.MergeTagAction" >
            <result name="success">pages/merge.jsp</result>
        </action>

    </package>

</struts>

4.デモ

  • 出力**

Struts 2 Merge tag example

1. Merge 3 ArrayList into a single iterator.

  1. List1 - 1
  2. List2 - 1
  3. List3 - 1
  4. List1 - 2
  5. List2 - 2
  6. List3 - 2
  7. List1 - 3
  8. List2 - 3
  9. List3 - 3

2. Merge 3 HashMap into a single iterator.

  1. map1-key3=map1-value3
  2. map2-key2=map2-value2
  3. map3-key3=map3-value3
  4. map1-key1=map1-value1
  5. map2-key3=map2-value3
  6. map3-key1=map3-value1
  7. map1-key2=map1-value2
  8. map2-key1=map2-value1
  9. map3-key2=map3-value2

3. Merge ArrayList and HashMap into a single iterator.

  1. List1 - 1
  2. map1-key3=map1-value3
  3. List1 - 2
  4. map1-key1=map1-value1
  5. List1 - 3
  6. map1-key2=map1-value2

リファレンス

ドキュメンテーション]