<div dir="ltr" style="text-align: justify;" trbidi="on">
<div dir="ltr" style="text-align: justify;" trbidi="on">
<div dir="ltr" style="text-align: justify;" trbidi="on">In this tutorial, we are going to describe the generator tag. The generator tag is a generic tag that is used to generate iterators based on different attributes passed. Here we will not pass any attribute.</p>
<p> <b>Create action class:</b><br />
<i><b>ControlTagAction.java</b></i></p>
<pre class="highlight" name="code">package com.tutorialspoint.struts2; 
 
public class ControlTagAction{ 
 private String name; 
 
 public String execute() throws Exception { 
 return "success"; 
 } 
 
 public String getName() { 
 return name; 
 } 
 
 public void setName(String name) { 
 this.name = name; 
 } 
} 
</pre>
<div align='center' id="ads-id"></div>
<p><b>Create views</b><br />
Let us have<i><b> generator.jsp</b></i> to demonstrate the use of the generator tag:</p>
<pre class="highlight" name="code"><;%@ page contentType="text/html; charset=UTF-8" %>; 
<;%@ taglib prefix="s" uri="/struts-tags" %>; 
<;html>; 
<;head>; 
<;title>;Generator Control Tag Struts2 | dineshonjava.com<;/title>; 
<;/head>; 
<;body>; 
 
<;h1>;<;span style="background-color: #FFFFcc">;Example of Generator! | dineshonjava.com<;/span>;<;/h1>; 
<;h3>;The Name of Students:<;/h3>; 
 
<;s:generator val="%{'Dinesh,Sweety,Ankit, 
 Adesh,Vinesh,Anamika,Raaz}" count="7" 
 separator=",">; 
 <;s:iterator>; 
 <;s:property />; 
 
 <;/s:iterator>; 
<;/s:generator>; 
 
<;/body>; 
<;/html>; 
 
</pre>
<p>Here we are creating a generator tag and we ask it to parse the string that contains comma separated list of colors that form a rainbow. We tell the generator tag that the separator is &#8220;,&#8221; and we want all seven values in the list. If we are only interested in the first three values, then we would set the count to 3. In the body of the generator tag, we used the iterator to go through the values created by the generator tag and we print the value of the property.</p>
<p> <b>Configuration Files</b><br />
<b>Your <i>struts.xml</i> should look like:</b></p>
<pre class="highlight" name="code"><;?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="generatortag" class="com.dineshonjava.struts2.action.ControlTagAction">; 
 <;result name="success">;/generator.jsp<;/result>; 
 <;/action>; 
 
 <;/package>; 
 <;/struts>; 
</pre>
</div>
<p><b>Your <i>web.xml</i> should look like:</b></p>
<pre class="highlight" name="code"><;?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>; 
</pre>
<p>Right click on the project name and click <b>Export >; WAR</b> File to create a War file. Then deploy this WAR in the Tomcat&#8217;s webapps directory. Finally, start Tomcat server and try to access </p>
<p> <b>URL <i>http://localhost:8080/doj/generatortag.</i></b><br />
<b><i>This will give you following screen: </i></b></p>
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://dineshonjava.com/wp-content/uploads/2013/08/33333-1.png"/></div>
<p>
 </div>
<p><b>Download Source Code</b><br />
<b><a href="https://sites.google.com/a/dineshonjava.com/dineshonjava/dineshonjava/Struts2GeneratorTags.zip?attredirects=0&;d=1" target="_blank">Struts2GeneratorTag.zip</a></b></p>
<p></p>
<div style="background-color: pink; border-width: thin; text-align: center;"><b><;<;<a href="https://dineshonjava.com/struts-2-merge-tag-example/">Previous</a> <;<; ; ; || <a href="https://dineshonjava.com/struts-2-baby-step-to-learn/">Index </a>||  ; >;>;<a href="https://dineshonjava.com/struts2-sort-tag-example/">Next</a> >;>;</b></div>
</div>
<div class="wp-post-navigation"> 
									 <div class="wp-post-navigation-pre"> 
									 <a href="https://dineshonjava.com/struts-2-merge-tag-example/">Previous</a> 
									 </div> 
									 <div class="wp-post-navigation-next"> 
									 <a href="https://dineshonjava.com/struts2-sort-tag-example/">Next</a> 
									 </div> 
									</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
 $.post('https://dineshonjava.com/wp-admin/admin-ajax.php', {action: 'mts_view_count', id: '372'});
});
</script>
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…