    <%@ taglib prefix="my" uri="http://jakarta.apache.org/tomcat/jsp2-example-taglib"%>

    <html>
      <head>
        <title>JSP 2.0 Examples - Shuffle Example</title>
      </head>
      <body>
        <h1>JSP 2.0 Examples - Shuffle Example</h1>
        <hr>
        <p>Try reloading the page a few times.  Both the rows and the columns
        are shuffled and appear different each time.</p>
        <p>Here's how the code works.  The SimpleTag handler called
        &lt;my:shuffle&gt; accepts three attributes.  Each attribute is a
        JSP Fragment, meaning it is a fragment of JSP code that can be
        dynamically executed by the shuffle tag handler on demand.  The
        shuffle tag handler executes the three fragments in a random order.
        To shuffle both the rows and the columns, the shuffle tag is used
        with itself as a parameter.</p>
        <hr>
        <blockquote>
         <font color="#ffffff">
          <table>
            <my:shuffle>
              <jsp:attribute name="fragment1">
                <tr>
                  <my:shuffle>
                    <jsp:attribute name="fragment1">
                      <my:tile color="#ff0000" label="A"/>
                    </jsp:attribute>
                    <jsp:attribute name="fragment2">
                      <my:tile color="#00ff00" label="B"/>
                    </jsp:attribute>
                    <jsp:attribute name="fragment3">
                      <my:tile color="#0000ff" label="C"/>
                    </jsp:attribute>
                  </my:shuffle>
                </tr>
              </jsp:attribute>
              <jsp:attribute name="fragment2">
                <tr>
                  <my:shuffle>
                    <jsp:attribute name="fragment1">
                      <my:tile color="#ff0000" label="1"/>
                    </jsp:attribute>
                    <jsp:attribute name="fragment2">
                      <my:tile color="#00ff00" label="2"/>
                    </jsp:attribute>
                    <jsp:attribute name="fragment3">
                      <my:tile color="#0000ff" label="3"/>
                    </jsp:attribute>
                  </my:shuffle>
                </tr>
              </jsp:attribute>
              <jsp:attribute name="fragment3">
                <tr>
                  <my:shuffle>
                    <jsp:attribute name="fragment1">
                      <my:tile color="#ff0000" label="!"/>
                    </jsp:attribute>
                    <jsp:attribute name="fragment2">
                      <my:tile color="#00ff00" label="@"/>
                    </jsp:attribute>
                    <jsp:attribute name="fragment3">
                      <my:tile color="#0000ff" label="#"/>
                    </jsp:attribute>
                  </my:shuffle>
                </tr>
              </jsp:attribute>
            </my:shuffle>
          </table>
         </font>
        </blockquote>
      </body>
    </html>