package com.dineshonjava.struts2.action;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author Dinesh Rajput
*
*/
public class ControlTagAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private List<String> myList1 = new ArrayList<String>();
private List<String> myList2 = new ArrayList<String>();
private List<String> myList3 = new ArrayList<String>();
private Map<String,String> myMap1 = new HashMap<String,String>();
private Map<String,String> myMap2 = new HashMap<String,String>();
private Map<String,String> myMap3 = new HashMap<String,String>();
public String execute() {
myList1.add("dinesh in list 1");
myList1.add("anamika in list 1");
myList2.add("dinesh in list 2");
myList2.add("anamika in list 2");
myList3.add("dinesh in list 3");
myList3.add("anamika in list 3");
myMap1.put("map1-key1", "dinesh in map1");
myMap1.put("map1-key2", "anamika in map1");
myMap2.put("map2-key1", "dinesh in map2");
myMap2.put("map2-key2", "anamika in map2");
myMap3.put("map3-key1", "dinesh in map3");
myMap3.put("map3-key2", "anamika in map3");
return SUCCESS;
}
public List<String> getMyList1() {
return myList1;
}
public void setMyList1(List<String> myList1) {
this.myList1 = myList1;
}
public List<String> getMyList2() {
return myList2;
}
public void setMyList2(List<String> myList2) {
this.myList2 = myList2;
}
public List<String> getMyList3() {
return myList3;
}
public void setMyList3(List<String> myList3) {
this.myList3 = myList3;
}
public Map<String, String> getMyMap1() {
return myMap1;
}
public void setMyMap1(Map<String, String> myMap1) {
this.myMap1 = myMap1;
}
public Map<String, String> getMyMap2() {
return myMap2;
}
public void setMyMap2(Map<String, String> myMap2) {
this.myMap2 = myMap2;
}
public Map<String, String> getMyMap3() {
return myMap3;
}
public void setMyMap3(Map<String, String> myMap3) {
this.myMap3 = myMap3;
}
}
Create views<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>APPEND Control Tag Struts2 | dineshonjava.com</title>
</head>
<body>
<h1>Struts 2 Append tag in struts2 | dineshonjava.com</h1>
Combine 3 ArrayList into a single iterator.
<s:append var="mycombinelists">
<s:param value="%{myList1}" />
<s:param value="%{myList2}" />
<s:param value="%{myList3}" />
</s:append>
<ol>
<s:iterator value="%{#mycombinelists}">
<li><s:property /></li>
</s:iterator>
</ol>
Combine 3 HashMap into a single iterator.
<s:append var="mycombinemaps">
<s:param value="%{myMap1}" />
<s:param value="%{myMap2}" />
<s:param value="%{myMap3}" />
</s:append>
<ol>
<s:iterator value="%{#mycombinemaps}">
<li><s:property /></li>
</s:iterator>
</ol>
Combine ArrayList and HashMap into a single iterator.
<s:append var="mycombinelistmap">
<s:param value="%{myList1}" />
<s:param value="%{myMap2}" />
</s:append>
<ol>
<s:iterator value="%{#mycombinelistmap}">
<li><s:property /></li>
</s:iterator>
</ol>
</body>
</html>
The append tag takes two or more lists as parameters. <?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.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<constant name="struts.custom.i18n.resources" value="myapp" />
<package name="default" extends="struts-default" namespace="/">
<action name="appendtag" class="com.dineshonjava.struts2.action.ControlTagAction">
<result name="success">/appendtag.jsp</result>
</action>
</package>
</struts>
Your web.xml should look like:<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Struts2ControlTags</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

Labels: struts2