Struts2 subset Tag Example

The subset tag is a generic tag is used to output a subset or portion of an iterator elements. The following Example will shows how to implement the subset tag in the Struts2. 

First we create a JSP file named subsettag.jsp as follows.

Now create a jsp page using <s:subset> and <s:iterator> tags as shown in the SubsetTag.jsp page. The subset tag takes an iterator and outputs a subset of it. The parameter count is of integer type and it sets the number of entries to be kept in the resulting subset iterator.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
 <%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Subset Control Tag Struts2 | dineshonjava.com</title> 
</head>
<body>
 <h1><span style="background-color: #FFFFcc">Subset Tag Example! | dineshonjava.com
  </span></h1>
 <b>The Subset of first 2 values :</b>
 <s:subset source="userList" count="2">
  <ol> 
   <s:iterator>
    <li>
     <s:property value="userId" /> ,
     <s:property value="userName" /> ,
     <s:property value="age" />
    </li>
   </s:iterator>
  </ol><br>
 </s:subset>
<b>The Subset of 2 values starting from 3rd index :</b>
 <s:subset source="userList" start="2" count="2">
  <ol> 
   <s:iterator>
    <li>
     <s:property value="userId" /> ,
     <s:property value="userName" /> ,
     <s:property value="age" />
    </li>
   </s:iterator>
  </ol><br>
 </s:subset>
 </body>
</html>

The Struts mapping file Struts.xml is as follows-

<?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="subsettag" class="com.dineshonjava.struts2.action.ControlTagAction">
            <result name="success">/subsettag.jsp</result>
        </action>
        
    </package>
 </struts>

Create action class:

The action class ControlTagAction.java is as follows.

package com.dineshonjava.struts2.action;

import java.util.ArrayList;
import java.util.List;

import com.dineshonjava.struts2.domain.User;
import com.opensymphony.xwork2.ActionSupport;

/**
 * @author Dinesh Rajput
 *
 */
public class ControlTagAction extends ActionSupport{

 private static final long serialVersionUID = 1L;
 
 private List<User> userList = new ArrayList<User>();
 
 public String execute() {
  
  User user1 = new User();
  user1.setAge(27);
  user1.setUserId(111);
  user1.setUserName("Dinesh Rajput");
  
  User user2 = new User();
  user2.setAge(25);
  user2.setUserId(222);
  user2.setUserName("Anamika Rajput");
  
  User user3 = new User();
  user3.setAge(23);
  user3.setUserId(333);
  user3.setUserName("Aadesh");
  
  User user4 = new User();
  user4.setAge(21);
  user4.setUserId(444);
  user4.setUserName("Vinesh Rajput");
  
  userList.add(user1);
  userList.add(user2);
  userList.add(user3);
  userList.add(user4);
  
  return SUCCESS;
 }

 public List<User> getUserList() {
  return userList;
 }


 public void setUserList(List<User> userList) {
  this.userList = userList;
 }
}

Create web.xml file as below.

<?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>

Right click on the project name and click Export > WAR File to create a War file. Then deploy this WAR in the Tomcat’s webapps directory. Finally, start Tomcat server and try to access

URL http://localhost:8080/doj/subsettag.

This will give you following screen:

Struts2 subset Tag Example

Download Source Code
Struts2SUbsetTag.zip

<<Previous <<   || Index ||   >>Next >>
Previous
Next