<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta name="Date-Revision-yyyymmdd" content="20140918"/>
  <meta http-equiv="Content-Language" content="en"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>Control tags</title>

  <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <link href="/css/main.css" rel="stylesheet">
  <link href="/css/custom.css" rel="stylesheet">
  <link href="/highlighter/github-theme.css" rel="stylesheet">

  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
  <script type="text/javascript" src="/js/community.js"></script>
</head>
<body>

<a href="http://github.com/apache/struts" class="github-ribbon">
  <img style="position: absolute; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
</a>

<header>
  <nav>
    <div role="navigation" class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle">
            Menu
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a>
        </div>
        <div id="struts-menu" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Home<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/index.html">Welcome</a></li>
                <li><a href="/download.cgi">Download</a></li>
                <li><a href="/releases.html">Releases</a></li>
                <li><a href="/announce.html">Announcements</a></li>
                <li><a href="http://www.apache.org/licenses/">License</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Support<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/mail.html">User Mailing List</a></li>
                <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li>
                <li><a href="/security.html">Reporting Security Issues</a></li>
                <li class="divider"></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li>
                <li class="divider"></li>
                <li><a href="/maven/project-info.html">Maven Project Info</a></li>
                <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li>
                <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Documentation<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/birdseye.html">Birds Eye</a></li>
                <li><a href="/primer.html">Key Technologies</a></li>
                <li><a href="/kickstart.html">Kickstart FAQ</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li>
                <li class="divider"></li>
                <li><a href="/getting-started/">Getting Started</a></li>
                <li><a href="/security/">Security Guide</a></li>
                <li><a href="/core-developers/">Core Developers Guide</a></li>
                <li><a href="/tag-developers/">Tag Developers Guide</a></li>
                <li><a href="/maven-archetypes/">Maven Archetypes</a></li>
                <li><a href="/plugins/">Plugins</a></li>
                <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
                <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li>
                <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Contributing<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/youatstruts.html">You at Struts</a></li>
                <li><a href="/helping.html">How to Help FAQ</a></li>
                <li><a href="/dev-mail.html">Development Lists</a></li>
                <li><a href="/contributors/">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/submitting-patches.html">Submitting patches</a></li>
                <li><a href="/builds.html">Source Code and Builds</a></li>
                <li><a href="/coding-standards.html">Coding standards</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Contributors+Guide">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/release-guidelines.html">Release Guidelines</a></li>
                <li><a href="/bylaws.html">PMC Charter</a></li>
                <li><a href="/volunteers.html">Volunteers</a></li>
                <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li>
                <li><a href="/updating-website.html">Updating the website</a></li>
              </ul>
            </li>
            <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li>
          </ul>
        </div>
      </div>
    </div>
  </nav>
</header>


<article class="container">
  <section class="col-md-12">
    <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/control-tags.md" title="Edit this page on GitHub">Edit on GitHub</a>
    
    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
    
    <h1 class="no_toc" id="control-tags">Control Tags</h1>

<ul id="markdown-toc">
  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
  <li><a href="#struts-2-if-tag" id="markdown-toc-struts-2-if-tag">Struts 2 if Tag</a></li>
  <li><a href="#struts-iterator-tag" id="markdown-toc-struts-iterator-tag">Struts iterator Tag</a></li>
  <li><a href="#additional-iterator-attributes" id="markdown-toc-additional-iterator-attributes">Additional Iterator Attributes</a></li>
</ul>

<p>The example code for this tutorial, <strong>control-tags</strong>, is available at <a href="https://github.com/apache/struts-examples">struts-examples</a></p>

<h2 id="introduction">Introduction</h2>

<p>Struts 2 has several control tags that can be used in the view. This tutorial will discuss and show examples of how to use the Struts 2 if and iterator tags. For more information about these and other control tags visit <a href="http://cwiki.apache.org/confluence/display/WW/Generic+Tag+Reference">tags reference</a>.</p>

<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>

<h2 id="struts-2-if-tag">Struts 2 if Tag</h2>

<p>In the example application’s thankyou.jsp is this markup.</p>

<p><strong>thankyou.jsp Struts if Tag</strong></p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;s:if</span> <span class="na">test=</span><span class="s">"personBean.over21"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;p&gt;</span>You are old enough to vote!<span class="nt">&lt;/p&gt;</span>
<span class="nt">&lt;/s:if&gt;</span>
<span class="nt">&lt;s:else&gt;</span>
   <span class="nt">&lt;p&gt;</span>You are NOT old enough to vote.<span class="nt">&lt;/p&gt;</span>
<span class="nt">&lt;/s:else&gt;</span>
</code></pre></div></div>

<p>The Struts if tag has a test attribute. The value of the test attribute must evaluate to true or false. If true the statements between the opening and closing s:if tags will be executed. If false, the statements between the opening and closing s:else tags will be executed. Note that s:else tags come after the closing s:if tag and that the s:else tags are not required.</p>

<p>In the above example the Struts framework will call method getPersonBean exposed by the Action class (EditAction.java). Using the Person object returned by that method, the framework will then call method isOver21 of class Person. That method returns a boolean that will be used to determine if the test is true or false.</p>

<p>The value of the test attribute must be an expression that evaluates to true or false, but doesn’t need to be a method call that returns a boolean. For example this s:if tag that is in thankyou.jsp has a more complicated expression.</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;s:if</span> <span class="na">test=</span><span class="s">"personBean.carModels.length &gt; 1"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;p&gt;</span>Car models
<span class="nt">&lt;/s:if&gt;</span>
<span class="nt">&lt;s:else&gt;</span>
   <span class="nt">&lt;p&gt;</span>Car model
<span class="nt">&lt;/s:else&gt;</span>
</code></pre></div></div>

<p>The purpose of the above markup is to use either “Car model” or “Car models” depending on how many car models the user selected on the edit page. So the value for the test attribute of this iterator tag gets the length of the carModels String array and compares that to 1. If it’s greater than 1, the correct grammar is “Car models” else the correct grammar is “Car model”.</p>

<h2 id="struts-iterator-tag">Struts iterator Tag</h2>

<p>The Struts iterator tag is used to generate a loop that iterates over each item in a collection. In the thankyou.jsp is this markup.</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;table</span> <span class="na">style=</span><span class="s">"margin-left:15px"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;s:iterator</span> <span class="na">value=</span><span class="s">"personBean.carModels"</span><span class="nt">&gt;</span>
        <span class="nt">&lt;tr&gt;&lt;td&gt;&lt;s:property</span> <span class="nt">/&gt;&lt;/td&gt;&lt;/tr&gt;</span>
    <span class="nt">&lt;/s:iterator&gt;</span>
<span class="nt">&lt;/table&gt;</span>
</code></pre></div></div>

<p>The goal of this code is to create an HTML table with a row that display a car model selected by the user on the edit page. The car models the user selects on the edit page are stored in the carModels field (a String array) of the personBean object (of class Person).</p>

<p>The iterator tag has a value attribute that must evaluate to a collection (Array, List, Map).</p>

<p>The <code class="highlighter-rouge">s:property</code> tag nested inside the iterator tag is used to display the specific value of the collection each time the iterator loops over an element of the collection. Since the collection is an Array of String objects, the <code class="highlighter-rouge">s:property</code> tag doesn’t need to specify a value attribute. By default the <code class="highlighter-rouge">s:property</code> tag will display the single String for that element of the collection.</p>

<p>If the collection contains objects that have multiple fields, then you should use the value attribute of the s:property tag to determine what field to display. For example:</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;table</span> <span class="na">style=</span><span class="s">"margin-left:15px"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;s:iterator</span> <span class="na">value=</span><span class="s">"states"</span> <span class="nt">&gt;</span>	
        <span class="nt">&lt;tr&gt;&lt;td&gt;&lt;s:property</span> <span class="na">value=</span><span class="s">"stateAbbr"</span> <span class="nt">/&gt;&lt;/td&gt;</span> <span class="nt">&lt;td&gt;&lt;s:property</span> <span class="na">value=</span><span class="s">"stateName"</span> <span class="nt">/&gt;&lt;/tr&gt;</span>
    <span class="nt">&lt;/s:iterator&gt;</span>
<span class="nt">&lt;/table&gt;</span>
</code></pre></div></div>

<p>The value of the iterator tag is states, which causes the Struts 2 framework to call the getStates method of the Action class (<code class="highlighter-rouge">EditAction.java</code>). The getStates method returns a List of State objects. The State class has two fields stateAbbr and stateName, both having the appropriate get method. The iterator will loop over each State object stored in the collection. Each time through the loop, the Struts 2 framework will have a reference to the current State object and will call getStateAbbr and getStateName methods for that current State object.</p>

<h2 id="additional-iterator-attributes">Additional Iterator Attributes</h2>

<p>The Struts 2 iterator tag has additional attributes you can use to control the begin and end values for specifying that the iterator tag should only loop over a part of the collection. See the <a href="https://cwiki.apache.org/confluence/display/WW/iterator">iterator tag reference</a> for more information.</p>

<table>
  <tbody>
    <tr>
      <td>Return to <a href="form-validation-using-xml.html">Form validation using XML</a></td>
      <td>or</td>
      <td>onward to <a href="wildcard-method-selection.html">Wildcard method selection</a></td>
    </tr>
  </tbody>
</table>

  </section>
</article>


<footer class="container">
  <div class="col-md-12">
    Copyright &copy; 2000-2018 <a href="http://www.apache.org/">The Apache Software Foundation </a>.
    All Rights Reserved.
  </div>
  <div class="col-md-12">
    Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are
    trademarks of The Apache Software Foundation.
  </div>
  <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div>
</footer>

<script>!function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id)) {
    js = d.createElement(s);
    js.id = id;
    js.src = "//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js, fjs);
  }
}(document, "script", "twitter-wjs");</script>
<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script>

<div id="fb-root"></div>

<script>(function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s);
  js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>


</body>
</html>
