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:
Download Source Code
Struts2SUbsetTag.zip