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