package com.dineshonjava.struts2.action;
import java.util.ArrayList;
import java.util.List;
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>();
public String execute() {
myList1.add("dinesh in list 1");
myList1.add("aadesh in list 1");
myList1.add("vinesh in list 1");
myList2.add("dinesh in list 2");
myList2.add("aadesh in list 2");
myList1.add("vinesh in list 2");
myList3.add("dinesh in list 3");
myList3.add("aadesh in list 3");
myList1.add("vinesh in list 3");
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;
}
}
Create views<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Merge Control Tag Struts2 | dineshonjava.com</title>
</head>
<body>
<h1><span style="background-color: #FFFFcc">Merge Tag Example! | dineshonjava.com
</span></h1>
<s:merge id="mergeId">
<s:param value="%{myList1}" />
<s:param value="%{myList2}" />
<s:param value="%{myList3}" />
</s:merge>
<s:iterator value="%{#mergeId}">
<s:property /><br>
</s:iterator>
</body>
</html>
The merge 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="mergetag" class="com.dineshonjava.struts2.action.ControlTagAction">
<result name="success">/merge.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