Struts 2 – The generator tag

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.

Create action class:
ControlTagAction.java

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;
   }
}

Create views
Let us have generator.jsp to demonstrate the use of the generator tag:

<%@ 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>

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 “,” 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.

Configuration Files
Your struts.xml should look like:

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

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>

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/generatortag.
This will give you following screen:

Struts 2 - The generator tag

Download Source Code
Struts2GeneratorTag.zip

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