<%@ 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 <my:shuffle> 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>