| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd"> |
| <!--NewPage--> |
| <HTML> |
| <HEAD> |
| <!-- Generated by javadoc on Fri Jun 15 16:53:35 PDT 2001 --> |
| <TITLE> |
| Apache Struts API Documentation: Package org.apache.struts.taglib.logic |
| </TITLE> |
| <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style"> |
| </HEAD> |
| <BODY BGCOLOR="white"> |
| |
| <!-- ========== START OF NAVBAR ========== --> |
| <A NAME="navbar_top"><!-- --></A> |
| <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0"> |
| <TR> |
| <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> |
| <A NAME="navbar_top_firstrow"><!-- --></A> |
| <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3"> |
| <TR ALIGN="center" VALIGN="top"> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> |
| <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> |
| </TR> |
| </TABLE> |
| </TD> |
| <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> |
| </EM> |
| </TD> |
| </TR> |
| |
| <TR> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../../../org/apache/struts/taglib/html/package-summary.html"><B>PREV PACKAGE</B></A> |
| <A HREF="../../../../../org/apache/struts/taglib/template/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../../../index.html" TARGET="_top"><B>FRAMES</B></A> |
| <A HREF="package-summary.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD> |
| </TR> |
| </TABLE> |
| <!-- =========== END OF NAVBAR =========== --> |
| |
| <HR> |
| <H2> |
| Package org.apache.struts.taglib.logic |
| </H2> |
| |
| The "struts-logic" tag library contains tags that are useful in managing conditional |
| generation of output text, looping over object collections for repetitive generation |
| of output text, and application flow management |
| |
| <P> |
| <B>See: </B> |
| <BR> |
| <A HREF="#package_description"><B>Description</B></A> |
| <P> |
| |
| <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TD COLSPAN=2><FONT SIZE="+2"> |
| <B>Class Summary</B></FONT></TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="CompareTagBase.html">CompareTagBase</A></B></TD> |
| <TD>Abstract base class for comparison tags.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="ConditionalTagBase.html">ConditionalTagBase</A></B></TD> |
| <TD>Abstract base class for the various conditional evaluation tags.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="EqualTag.html">EqualTag</A></B></TD> |
| <TD>Evaluate the nested body content of this tag if the specified variable |
| and value are equal.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="ForwardTag.html">ForwardTag</A></B></TD> |
| <TD>Perform a forward or redirect to a page that is looked up in the global |
| ActionForwards collection associated with our application.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="GreaterEqualTag.html">GreaterEqualTag</A></B></TD> |
| <TD>Evaluate the nested body content of this tag if the specified variable |
| is greater than or equal to the specified value.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="GreaterThanTag.html">GreaterThanTag</A></B></TD> |
| <TD>Evaluate the nested body content of this tag if the specified variable |
| is greater than the specified value.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="IterateTag.html">IterateTag</A></B></TD> |
| <TD>Custom tag that iterates the elements of a collection, which can be |
| either an attribute or the property of an attribute.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="IterateTei.html">IterateTei</A></B></TD> |
| <TD>Implementation of <code>TagExtraInfo</code> for the <b>iterate</b> |
| tag, identifying the scripting object(s) to be made visible.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="LessEqualTag.html">LessEqualTag</A></B></TD> |
| <TD>Evaluate the nested body content of this tag if the specified variable |
| is less than or equal to the specified value.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="LessThanTag.html">LessThanTag</A></B></TD> |
| <TD>Evaluate the nested body content of this tag if the specified variable |
| is less than the specified value.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="MatchTag.html">MatchTag</A></B></TD> |
| <TD>Evalute the nested body content of this tag if the specified value |
| is a substring of the specified variable.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="NotEqualTag.html">NotEqualTag</A></B></TD> |
| <TD>Evaluate the nested body content of this tag if the specified variable |
| and value are not equal.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="NotMatchTag.html">NotMatchTag</A></B></TD> |
| <TD>Evalute the nested body content of this tag if the specified value |
| is not a substring of the specified variable.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="NotPresentTag.html">NotPresentTag</A></B></TD> |
| <TD>Evalute the nested body content of this tag if the specified value |
| is not present for this request.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="PresentTag.html">PresentTag</A></B></TD> |
| <TD>Evalute the nested body content of this tag if the specified value |
| is present for this request.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD WIDTH="15%"><B><A HREF="RedirectTag.html">RedirectTag</A></B></TD> |
| <TD>Generate a URL-encoded redirect to the specified URI.</TD> |
| </TR> |
| </TABLE> |
| |
| |
| <P> |
| <A NAME="package_description"><!-- --></A><H2> |
| Package org.apache.struts.taglib.logic Description |
| </H2> |
| |
| <P> |
| <p> |
| The "struts-logic" tag library contains tags that are useful in managing conditional |
| generation of output text, looping over object collections for repetitive generation |
| of output text, and application flow management |
| </p> |
| <a name="doc.Description"></a> |
| |
| <p> |
| |
| <div align="center"> <a href="#doc.Introduction">[Introduction]</a> <a href="#doc.Functionality">[Logic |
| Functionality]</a> <a href="#doc.Properties">[Logic Properties]</a> <a href="#doc.Examples">[Logic |
| Examples]</a> </div> |
| <p></p> |
| |
| <hr /> |
| <a name="doc.Intro"></a> |
| <h3>Introduction<a name="doc.Introduction"></a></h3> |
| |
| <p> |
| The Logic library supplies tags that are useful for manipulating presentation logic |
| without the use of scriptlets. |
| </p> |
| |
| |
| <a name="doc.Functionality"></a> |
| <h3>Logic Tag Functionality<a name="doc.Functionality"></a></h3> |
| <p> The functionality of the logic tags can be divided into four groups:</p> |
| <p><b>Value Comparisons -</b> The purpose of these tags is to print out the body |
| of the tag if the comparison evaluates to <i>true. </i></p> |
| <ul> |
| <li><b><a href="../../../../../../struts-logic.html#equal">equal,</a> <a href="../../../../../../struts-logic.html#notEqual">notEqual</a></b> |
| </li> |
| <li><b><a href="../../../../../../struts-logic.html#greaterEqual">greaterEqual</a>, <a href="../../../../../../struts-logic.html#lessEqual">lessEqual</a></b></li> |
| <li><b><a href="../../../../../../struts-logic.html#greaterThan">greaterThan</a>,<a href="../../../../../../struts-logic.html#lessThan"> |
| lessThan</a></b></li> |
| </ul> |
| <p><b>Substring Matching -</b> The purpose of these tags is to match substrings |
| inside of other Strings</p> |
| <ul> |
| <li><b><a href="../../../../../../struts-logic.html#match">match</a>, <a href="../../../../../../struts-logic.html#notMatch">notMatch</a></b></li> |
| </ul> |
| <p><b>Presentation Location -</b> The purpose of these tags is to change the location |
| of the presentation page</p> |
| <ul> |
| <li><a href="../../../../../../struts-logic.html#forward"><b>forward</b></a></li> |
| <li><a href="../../../../../../struts-logic.html#redirect"><b>redirect</b></a></li> |
| </ul> |
| <p><b>Collection Utilities -</b>The purpose of these tags is to handle Collections</p> |
| <ul> |
| <li><a href="../../../../../../struts-logic.html#iterate"><b>iterate</b></a> </li> |
| </ul> |
| <h3>Logic Tag Properties<a name="doc.Properties"></a></h3> |
| <p>Each of the four groups of logic tags have a common set of attributes associated |
| with them. :</p> |
| <blockquote> |
| <p><b>Value Comparisons</b> (equal, notEqual, greaterEqual, lessEqual, greaterThan, |
| lessThan, present, notPresent)</p> |
| <p>Each of the value comparison tags takes a <i>value</i> and compares it to |
| the value of a comparison attribute. If the value given can be successfully |
| converted to a <i>float</i> or <i>double</i>, then a number comparison is |
| performed on the value given and the value of the comparison attribute. Otherwise |
| a String comparison is performed. You have to specify one of the comparison |
| attributes: <i>cookie</i>, <i>header</i>, <i>parameter</i>, <i>property</i> |
| or <i>name. </i>For each of the examples, the tag "<i>someComparisonTag"</i>can |
| be replaced by any of the value comparison tags.</p> |
| <ul> |
| <li>value - the value to which this tag is going to compare, used in conjunction |
| with one of the comparison attributes: <i>cookie</i>, <i>header</i>, <i>parameter</i>, |
| <i>and property</i> and/or <i>name. </i></li> |
| <li>cookie - the name of the cookie to compare to <i>value</i> |
| <ul> |
| <li>example: |
| <pre><logic:<i>someComparisonTag</i> value="someUserName" cookie="userName"> |
| User Logged In |
| </logic:<i>someComparisonTag</i>> |
| </pre> |
| </li> |
| </ul> |
| </li> |
| <li>header - the name of the HTTP header to compare to <i>value</i> |
| <ul> |
| <li>example: |
| <pre><logic:<i>someComparisonTag</i> value="en_US" header="Accept-Language"> |
| Welcome English-speaking User* |
| </logic:<i>someComparisonTag</i>> |
| </pre> |
| </li> |
| <li> |
| <p>*Note: See the section in the user's guide on <a href="../../../../../../userGuide/building_view.html#i18n">Internationalized |
| Messages</a> to do things like this better.</p> |
| </li> |
| </ul> |
| </li> |
| <li>name - the variable to be compared to <i>value</i> is the JSP bean specified |
| by this attribute, if property is not specified, or the value of the specified |
| property of this bean, if property is specified. |
| <ul> |
| <li>example: |
| <pre><% |
| String testString = "pantalones"; |
| pageContext.setAttribute("testString", testString, PageContext.PAGE_SCOPE); |
| %> |
| <jsp:useBean id="testString" scope="page" type="java.lang.String" /> |
| <logic:<i>someComparisonTag</i> name="testString" value="pantalones"> |
| Usted tiene pantalones! |
| </logic:<i>someComparison</i>> |
| </pre> |
| </li> |
| </ul> |
| </li> |
| <li>parameter - the name of the request parameter to compare to <i>value</i> |
| <ul> |
| <li>example: |
| <pre><logic:<i>someComparisonTag</i> value="" parameter="username"> |
| Error: a username must be specified |
| </logic:<i>someComparisonTag</i>> |
| </pre> |
| </li> |
| </ul> |
| </li> |
| <li>property - the variable to be compared with <i>value</i> is the property |
| (of the bean specified by the name attribute) specified by this attribute. |
| The property reference can be simple, nested, and/or indexed. <i>property</i> |
| is used in conjunction with <i>name</i> to specify a property in the bean |
| specified by <i>name</i>. For the type of syntax used for property, see |
| the users guide on the Bean Tags.</li> |
| <li>scope - the bean scope within which to search for the bean named by the |
| name property, or "any scope" if not specified. Possible values are "page", |
| "request", "session", "application", or "any |
| scope" </li> |
| </ul> |
| <p><b>Substring Matching</b> (match, notMatch)</p> |
| <p>The substring matching tags take all the same arguments as the value comparison |
| tags. You compare the String specified by <i>value</i> to any of the comparison |
| values you give it, specified by <i>cookie</i>, <i>header</i>, <i>parameter</i>, |
| <i>property</i> or <i>name.</i> Note that in the examples, <i>matchTag</i> |
| corresponds either the <i>match </i>or <i>notMatch</i> tag. Matching tags |
| also have an additional <i>location</i> attribute added:</p> |
| <ul> |
| <li>location - has two possible values, "start" and "end". |
| If "start", the substring is attempted to be matched at the beginning |
| of the String, if "end", then the substring is attempted to be |
| matched to the end of the String. |
| <ul> |
| <li>example: |
| <pre><logic:<i>matchTag</i> parameter="action" value="processLogin" location="start"> |
| Processing Login.... |
| </logic:<i>matchTag</i>> |
| |
| In this example, a request parameter "action" was compared to see if |
| its value started with the String "processLogin". In this case, |
| <i>matchTag</i> would have to be <logic:match>. |
| </pre> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <p><b>Presentation Location</b> (forward, redirect)</p> |
| <p>The <i>redirect</i> tag is resposible for sending a re-direct to the client's |
| browser, complete with URL-rewriting if it's supported by the container. Its |
| attributes are consistent with the Struts HTML <a href="../../../../../../struts-html.html#link"><code>link</code></a> |
| tag. The base URL is calculated based on which of the following attributes |
| you specify (you must specify exactly one of them):</p> |
| <ul> |
| <li> forward - Use the value of this attribute as the name of a global ActionForward |
| to be looked up, and use the context-relative URI found there. </li> |
| <li>href - Use the value of this attribute unchanged. </li> |
| <li>page - Use the value of this attribute as a context-relative URI, and |
| generate a server-relative URI by including the context path. </li> |
| </ul> |
| <p>The <i>forward</i> tag is responsible for either redirecting or forwarding |
| to a specified global action forward. To define a global ActionForward, see |
| The <a href="../../../../../../userGuide/building_controller.html#config">Action |
| Mappings Configuration File</a>. You can specify whether the forward re-directs |
| or forwards when executed in the config file. The forward tag has one attribute:</p> |
| <ul> |
| <li>name - The logical name of the ActionForward to use</li> |
| </ul> |
| <p><b>Collection Utilities</b> (iterate)</p> |
| <p>The <i>iterate</i> tag is responsible for executing its body content once |
| for every element inside of the specified Collection. There is one required |
| attribute:</p> |
| <ul> |
| <li>id - The name of a page scope JSP bean that will contain the current element |
| of the collection on each iteration</li> |
| </ul> |
| <p>The other attributes allow for more flexibility on which Collection to iterate |
| and how to do it:</p> |
| <ul> |
| <li>collection - a runtime expression that evaluates to a Collection to be |
| iterated |
| <ul> |
| <li>example: |
| <pre><% |
| java.util.Vector vector = new java.util.Vector(); |
| vector.add(new Integer(12)); |
| vector.add(new Integer(5)); |
| %> |
| </pre> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <blockquote> |
| <blockquote> |
| <pre><logic:iterate id="myCollectionElement" collection="<%= vector %>"> |
| <i> Do something with myCollectionElement</i> |
| </logic:iterate> |
| </pre> |
| </blockquote> |
| </blockquote> |
| <ul> |
| <li>length - The maximum number of entries (from the underlying collection) |
| to be iterated through on this page. This can be either an integer that |
| directly expresses the desired value, or the name of a JSP bean (in any |
| scope) of type java.lang.Integer that defines the desired value. If not |
| present, there will be no limit on the number of iterations performed</li> |
| <li>name - The name of the JSP bean containing the collection to be iterated |
| (if property is not specified), or the JSP bean whose property getter returns |
| the collection to be iterated (if property is specified). |
| <ul> |
| <li>example: |
| <pre><%<br> |
| java.util.ArrayList list = new java.util.ArrayList(); |
| list.add("First"); |
| list.add("Second"); |
| list.add("Third"); |
| list.add("Fourth"); |
| list.add("Fifth"); |
| pageContext.setAttribute("list", list, PageContext.PAGE_SCOPE); |
| %> |
| |
| <logic:iterate id="myCollectionElement" name="list"> |
| <i>Do something with myCollectionElement</i> |
| </logic:iterate></pre> |
| </li> |
| </ul> |
| </li> |
| <li>offset - The zero-relative index of the starting point at which entries |
| from the underlying collection will be iterated through. This can be either |
| an integer that directly expresses the desired value, or the name of a JSP |
| bean (in any scope) of type java.lang.Integer that defines the desired value. |
| If not present, zero is assumed (meaning that the collection will be iterated |
| from the beginning. </li> |
| <li>property - Name of the property, of the JSP bean specified by name, whose |
| getter returns the collection to be iterated. See the user's guide for the |
| bean tag library for the syntax of the property attribute</li> |
| <li>scope - The bean scope within which to search for the bean named by the |
| name property, or "any scope" if not specified. Possible values are "page", |
| "request", "session", "application", or "any |
| scope" </li> |
| <li>type - Fully qualified Java class name of the element to be exposed through |
| the JSP bean named from the id attribute. If not present, no type conversions |
| will be performed. NOTE: The actual elements of the collection must be assignment-compatible |
| with this class, or a request time ClassCastException will occur. |
| <ul> |
| <li>example: |
| <pre><% java.util.ArrayList list = new java.util.ArrayList(); |
| list.add("First"); |
| list.add("Second"); |
| list.add("Third"); |
| list.add("Fourth"); |
| list.add("Fifth"); |
| pageContext.setAttribute("list", list, PageContext.PAGE_SCOPE); |
| %> |
| |
| <logic:iterate id="myCollectionElement" name="list" type="java.lang.String"> |
| <i>Do something with myCollectionElement</i> |
| </logic:iterate></pre> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </blockquote> |
| <h3>Logic Examples</h3> |
| <blockquote> |
| <p><b>Value Comparisons</b></p> |
| <blockquote> |
| <p><u></u><u></u><u>Logic Equivalence Tags (equal, notEqual, greaterEqual, |
| lessEqual, lessThan, greaterThan)</u></p> |
| <blockquote> |
| <p>You can compare these tags to the "==", "!=" ,">=", |
| "<=", "<", and ">"logic operators |
| in most languages. Their usage is fairly straightforward for numbers. |
| For an example, we'll create a small "Guess That Number" game |
| that uses request parameters from a form input to play. The number will |
| be hardcoded as "7", because this is just an example. Note that |
| this is actually putting application logic inside of jsp pages, and isn't |
| the recommended development method for Struts. It's just an easy way to |
| show how these tags are used:</p> |
| <p>The first step is to develop the form that will call on the processing |
| jsp page. This form will use the "GET" method so that you can |
| see the request parameter in the URL. The POST method can also be used |
| with no problem or changes.</p> |
| <p>[numberGuess.jsp]</p> |
| <pre><form action="numberProcess.jsp" method="GET"> |
| Please Enter a Number From 1-10: <input type="text" name="number" /><br /> |
| <center> |
| <input type="submit" name="Guess Number" /> |
| </center> |
| </form> |
| </pre> |
| The next step is to create the processing page. It uses the struts-logic |
| taglib. For information on how to set this tag library up in your application |
| to use, see <a href="../../../../../../userGuide/building_controller.html#dd_config">The |
| Web Application Deployment Descriptor</a> |
| |
| <p>[numberProcess.jsp]</p> |
| <pre><%@ page language="java" %> |
| <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
| </pre> |
| <pre><!-- Is the number guess right? --> |
| <logic:equal parameter="number" value="7"> |
| You guessed right! You win a high speed blender! |
| </logic:equal> |
| </pre> |
| <pre><!-- If the number guessed was wrong --> |
| <logic:notEqual parameter="number" value="7"> |
| <!-- Less Than --> |
| <logic:lessThan parameter="number" value="7"> |
| A little higher... |
| </logic:lessThan> |
| <!-- Greater Than --> |
| <logic:greaterThan parameter="number" value="7"> |
| A little lower... |
| </logic:greaterThan> |
| </logic:notEqual> |
| </pre> |
| <p>Basically, the numberProcess.jsp page uses the equal tag to check if |
| the guess is 7, and if so, prints out a congratulatory message. If the |
| number isn't equal, specified by the use of the <logic:notEqual> |
| tag, it uses the greaterThan and lessThan tags to check if the number |
| is higher or lower than 7, and prints out a hint. As said before, this |
| is a horribly designed small application, with no validity checks on the |
| number input, but shows the basic usage of the logic equal tags</p> |
| <p>For String comparisons, the equal tags use the java.lang.String.compareTo() |
| method. See the javadocs on the compareTo() method for more information, |
| located <a href="http://www.javasoft.com/products/jdk/1.2/docs/api/java/lang/String.html#compareTo(java.lang.Object)">here</a>.</p> |
| </blockquote> |
| <p><u>Match and Present Tags (match, notMatch, present, notPresent)</u></p> |
| <blockquote> |
| <p>You use the match tags in conjunction with the present tags in order |
| to do substring matches. For an example using this we'll use headers, |
| specifically the "Referer" header. The HTTP referer header gives |
| the URL of the document that refers to the requested URL. We'll use this |
| to check if the user is coming from a link specified by a <a href="http://www.google.com">Google</a> |
| search, and offer a personalized greeting, frightening users that find |
| our site through the search engine with our amazing intimate knowledge |
| of their browsing habits:</p> |
| <p>[sneaky.jsp]</p> |
| <pre><%@ page language="java" %> |
| <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
| |
| |
| <!-- Check to see if the "Referer" header is present --> |
| <logic:present header="Referer"> |
| <logic:match header="Referer" value="google.com"> |
| I see you found our site through Google... interesting. |
| </logic:match> |
| <logic:notMatch header="Referer" value="google.com"> |
| Welcome to the site, we're secretly logging what site you came from, |
| because we're shady... |
| </logic:notMatch> |
| </logic:present> |
| |
| <!-- If the header is not present --> |
| <logic:notPresent header="Referer"> |
| Hi, welcome to our site. Please fill out our |
| <a href="nonExistantForm.jsp">Form</a> and |
| tell us where you're coming from. |
| </logic:notPresent></pre> |
| <p>Note: Another interesting usage of these tags and headers would be to |
| use the "User-Agent" header to display browser-specific javascript.</p> |
| </blockquote> |
| </blockquote> |
| <p><b>Collection Utilities (iterate)</b></p> |
| <blockquote> |
| <p>For an example of using the <logic:iterate> tag, we'll use one of |
| the previous examples given, in it's entirety. This example uses the <bean:write> |
| tag from the Bean Tag Library, see the User's Guide on the bean tag library |
| for more information on it's usage:</p> |
| <p>[iterate.jsp]</p> |
| <pre><%@ page language="java" %> |
| <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
| <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
| </pre> |
| <pre><% |
| java.util.ArrayList list = new java.util.ArrayList(); |
| list.add("First"); |
| list.add("Second"); |
| list.add("Third"); |
| list.add("Fourth"); |
| list.add("Fifth"); |
| pageContext.setAttribute("list", list, PageContext.PAGE_SCOPE); |
| %> |
| |
| <logic:iterate id="myCollectionElement" name="list"> |
| Element Value: <bean:write name="myCollectionElement" /><br /> |
| </logic:iterate></pre> |
| </blockquote> |
| </blockquote> |
| <P> |
| <HR> |
| |
| <!-- ========== START OF NAVBAR ========== --> |
| <A NAME="navbar_bottom"><!-- --></A> |
| <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0"> |
| <TR> |
| <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> |
| <A NAME="navbar_bottom_firstrow"><!-- --></A> |
| <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3"> |
| <TR ALIGN="center" VALIGN="top"> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> |
| <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> |
| </TR> |
| </TABLE> |
| </TD> |
| <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> |
| </EM> |
| </TD> |
| </TR> |
| |
| <TR> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../../../org/apache/struts/taglib/html/package-summary.html"><B>PREV PACKAGE</B></A> |
| <A HREF="../../../../../org/apache/struts/taglib/template/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../../../index.html" TARGET="_top"><B>FRAMES</B></A> |
| <A HREF="package-summary.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD> |
| </TR> |
| </TABLE> |
| <!-- =========== END OF NAVBAR =========== --> |
| |
| <HR> |
| Copyright © 2000-2001 - Apache Software Foundation |
| </BODY> |
| </HTML> |