Struts 2 s:optiontransferselect UI tag

<s:optiontransferselect>:

The <s:optiontransferselect> tag is used to create the option transfer select component which is the combination of two updownselect components. It contains the buttons to move the selected items between the two updownselect components.

Syntax:

<s: optiontransferselect name="firstDropDownName" list="firstDropDownValueList"
 doubleName="secondDropDownName" doubleList=”secondDropDownValueList" />

Example:

index.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  	<title>Struts 2 s:optiontransferselect UI tags example</title>
	<META HTTP-EQUIV="Refresh" CONTENT="0;URL=initializeList.action">
  </head>  
  <body>
  </body>
</html>

test.jsp

<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
	<head>
	   <title>Struts 2 s:optiontransferselect UI tags example</title>
	</head>
	<body>
		<h3>This is a s:optiontransferselect UI tags example.</h3>
 
		<s:form action="Test">
			<s:optiontransferselect
			     label="Test Items"
			     leftTitle="Left Items"
			     name="leftItems"			     
			     list="leftItemList"
			     headerKey="-1"
			     headerValue="select items"
			     rightTitle="Right Items"
			     doubleList="rightItemList"
			     doubleName="rightItems"
			     doubleHeaderKey="-1"
			     doubleHeaderValue="Select items"
			     multiple="true" />
			<s:submit value="Submit"/>
		</s:form>
 
	</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
 
 	<filter>
	  <filter-name>struts2</filter-name>
	  <filter-class>
        	org.apache.struts2.dispatcher.ng.
        	filter.StrutsPrepareAndExecuteFilter
          </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>

struts.xml

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>
 
	<package name="default" extends="struts-default">
	 <action name="initializeList" 
	   class="com.w3schools.action.Test" method="initializeList">
		<result name="none">/test.jsp</result>
	 </action>
 
	 <action name="Test" class="com.w3schools.action.Test">
		<result name="success">/welcome.jsp</result>
	 </action>
	</package>
 
</struts>

Test.java

import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
 
/**
 * This class is used as an action class.
 * @author w3schools
 */
public class Test extends ActionSupport{
	//data members
	private List<String> leftItemList;
	private String leftItems;
	private List<String> rightItemList;
	private String rightItems;
 
	//business logic
	public String execute(){
		return SUCCESS;	
	}
 
	//getter setters
	public List<String> getLeftItemList() {
		return leftItemList;
	}
 
	public void setLeftItemList(List<String> leftItemList) {
		this.leftItemList = leftItemList;
	}
 
	public String getLeftItems() {
		return leftItems;
	}
 
	public void setLeftItems(String leftItems) {
		this.leftItems = leftItems;
	}
 
	public List<String> getRightItemList() {
		return rightItemList;
	}
 
	public void setRightItemList(List<String> rightItemList) {
		this.rightItemList = rightItemList;
	}
 
	public String getRightItems() {
		return rightItems;
	}
 
	public void setRightItems(String rightItems) {
		this.rightItems = rightItems;
	}	
 
 
	public String initializeList(){
		leftItemList = new ArrayList<String>();
		leftItemList.add("Item 1");
		leftItemList.add("Item 2");
		leftItemList.add("Item 3");
		leftItemList.add("Item 4");
		leftItemList.add("Item 5");
 
		rightItemList = new ArrayList<String>();
		rightItemList.add("Item 6");
		rightItemList.add("Item 7");
		rightItemList.add("Item 8");
		rightItemList.add("Item 9");
		rightItemList.add("Item 10");
 
		return NONE;
	}
 
}

welcome.jsp

<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
	<head>
	   <title>Struts 2 s:optiontransferselect UI tags example</title>
	</head>
	<body>
		<h3>This is a s:optiontransferselect UI tags example.</h3>
 
		Left subject: <s:property value="leftItems" /><br/>
		Right subject: <s:property value="rightItems" />
 
	</body>
</html>

Output:

struts 38 first
 
Move and select items.
struts 38 second
 
Click on submit button.
struts 38 final
 
Download this example.
 
Next Topic: Struts 2 s:datetimepicker UI tag with example.
Previous Topic: Struts 2 s:updownselect UI tag with example.