From d2ca42f427b3eda09c01a7e340a6f7b9e32ee3fd Mon Sep 17 00:00:00 2001 From: Leif Johansson <leifj@sunet.se> Date: Thu, 3 Nov 2011 12:23:00 +0100 Subject: new tlds --- src/main/webapp/WEB-INF/tlds/struts-bean.tld | 1476 +++++++++++---- src/main/webapp/WEB-INF/tlds/struts-logic.tld | 2433 +++++++++++++++++++------ 2 files changed, 3023 insertions(+), 886 deletions(-) (limited to 'src/main/webapp/WEB-INF/tlds') diff --git a/src/main/webapp/WEB-INF/tlds/struts-bean.tld b/src/main/webapp/WEB-INF/tlds/struts-bean.tld index d8e4425..7e95a46 100755 --- a/src/main/webapp/WEB-INF/tlds/struts-bean.tld +++ b/src/main/webapp/WEB-INF/tlds/struts-bean.tld @@ -1,346 +1,1152 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + $Id: struts-bean.tld 481833 2006-12-03 17:32:52Z niallp $ + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!DOCTYPE taglib + PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" + "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> +<taglib> + <tlib-version>1.3</tlib-version> + <jsp-version>1.2</jsp-version> + <short-name>bean</short-name> + <uri>http://struts.apache.org/tags-bean</uri> + <description> + <![CDATA[ + <p><strong>Note: Some of the features in this taglib are also + available in the <a href="http://java.sun.com/products/jsp/jstl/">JavaServer Pages Standard Tag Library (JSTL)</a>. + The Struts team encourages the use of the standard tags over the Struts + specific tags when possible.</strong></p> + <p>This tag library contains tags useful in accessing beans and their + properties, as well as defining new beans (based on these accesses) + that are accessible to the remainder of the page via scripting variables + and page scope attributes. Convenient mechanisms to create new beans + based on the value of request cookies, headers, and parameters are also + provided.</p> + <p>Many of the tags in this tag library will throw a + <code>JspException</code> at runtime when they are utilized incorrectly + (such as when you specify an invalid combination of tag attributes). JSP + allows you to declare an "error page" in the <code><%@ page %></code> + directive. If you wish to process the actual exception that caused the + problem, it is passed to the error page as a request attribute under key + <code>org.apache.struts.action.EXCEPTION</code>.</p> + ]]> + </description> + <tag> + <name>cookie</name> + <tag-class>org.apache.struts.taglib.bean.CookieTag</tag-class> + <tei-class>org.apache.struts.taglib.bean.CookieTei</tei-class> + <body-content>empty</body-content> + <description> + <![CDATA[ + <p><strong> + Define a scripting variable based on the value(s) of the specified + request cookie. + </strong></p> + + <p>Retrieve the value of the specified request cookie (as a single + value or multiple values, depending on the <code>multiple</code> attribute), + and define the result as a page scope attribute of type <code>Cookie</code> + (if <code>multiple</code> is not specified) or <code>Cookie[]</code> + (if <code>multiple</code> is specified).</p> + <p>If no cookie with the specified name can be located, and no default + value is specified, a request time exception will be thrown.</p> + ]]> + </description> + <attribute> + <name>id</name> + <required>true</required> + <rtexprvalue>false</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the scripting variable (and associated page + scope attribute) that will be made available with the value of the + specified request cookie.</p> + ]]> + </description> + </attribute> + <attribute> + <name>multiple</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>If any arbitrary value for this attribute is specified, causes all + matching cookies to be accumulated and stored into a bean of type + <code>Cookie[]</code>. If not specified, the first value for the + specified cookie will be retrieved as a value of type + <code>Cookie</code>.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the request cookie whose value, or values, + is to be retrieved.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The default cookie value to return if no cookie with the + specified name was included in this request.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>define</name> + <tag-class>org.apache.struts.taglib.bean.DefineTag</tag-class> + <tei-class>org.apache.struts.taglib.bean.DefineTei</tei-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Define a scripting variable based on the value(s) of the specified + bean property. + </strong></p> + + <p>Create a new attribute (in the scope specified by the + <code>toScope</code> property, if any), and a corresponding scripting + variable, both of which are named by the value of the <code>id</code> + attribute. The corresponding value to which this new attribute (and + scripting variable) is set are specified via use of exactly one of the + following approaches (trying to use more than one will result in a + JspException being thrown):</p> + <ul> + <li>Specify a <code>name</code> attribute (plus optional + <code>property</code> and <code>scope</code> attributes) - + The created attribute and scripting variable will be of the type of the + retrieved JavaBean property, unless it is a Java primitive type, + in which case it will be wrapped in the appropriate wrapper class + (i.e. int is wrapped by java.lang.Integer).</li> + <li>Specify a <code>value</code> attribute - The created attribute and + scripting variable will be of type <code>java.lang.String</code>, + set to the value of this attribute.</li> + <li>Specify nested body content - The created attribute and scripting + variable will be of type <code>java.lang.String</code>, set to + the value of the nested body content.</li> + </ul> + <p>If a problem occurs while retrieving the specified bean property, a + request time exception will be thrown.</p> -<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> -<taglib> -<tlibversion>1.0</tlibversion> -<jspversion>1.1</jspversion> -<shortname>bean</shortname> -<uri>http://jakarta.apache.org/struts/tags-bean-1.0.2</uri> -<tag> -<name>cookie</name> -<tagclass>org.apache.struts.taglib.bean.CookieTag</tagclass> -<teiclass>org.apache.struts.taglib.bean.CookieTei</teiclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>id</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>multiple</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>define</name> -<tagclass>org.apache.struts.taglib.bean.DefineTag</tagclass> -<teiclass>org.apache.struts.taglib.bean.DefineTei</teiclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>id</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>toScope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>type</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>header</name> -<tagclass>org.apache.struts.taglib.bean.HeaderTag</tagclass> -<teiclass>org.apache.struts.taglib.bean.HeaderTei</teiclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>id</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>multiple</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>include</name> -<tagclass>org.apache.struts.taglib.bean.IncludeTag</tagclass> -<teiclass>org.apache.struts.taglib.bean.IncludeTei</teiclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>anchor</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>forward</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>href</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>id</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>page</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>transaction</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>message</name> -<tagclass>org.apache.struts.taglib.bean.MessageTag</tagclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>arg0</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>arg1</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>arg2</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>arg3</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>arg4</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>bundle</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>key</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>locale</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>page</name> -<tagclass>org.apache.struts.taglib.bean.PageTag</tagclass> -<teiclass>org.apache.struts.taglib.bean.PageTei</teiclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>id</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>parameter</name> -<tagclass>org.apache.struts.taglib.bean.ParameterTag</tagclass> -<teiclass>org.apache.struts.taglib.bean.ParameterTei</teiclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>id</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>multiple</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>resource</name> -<tagclass>org.apache.struts.taglib.bean.ResourceTag</tagclass> -<teiclass>org.apache.struts.taglib.bean.ResourceTei</teiclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>id</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>input</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>size</name> -<tagclass>org.apache.struts.taglib.bean.SizeTag</tagclass> -<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>collection</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>id</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>struts</name> -<tagclass>org.apache.struts.taglib.bean.StrutsTag</tagclass> -<teiclass>org.apache.struts.taglib.bean.StrutsTei</teiclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>id</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>formBean</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>forward</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>mapping</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>write</name> -<tagclass>org.apache.struts.taglib.bean.WriteTag</tagclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>filter</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>ignore</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> + <p>The <code><bean:define></code> tag differs from + <code><jsp:useBean></code> in several ways, including:</p> + <ul> + <li>Unconditionally creates (or replaces) a bean under the + specified identifier.</li> + <li>Can create a bean with the value returned by a property getter + of a different bean (including properties referenced with a + nested and/or indexed property name).</li> + <li>Can create a bean whose contents is a literal string (or the result + of a runtime expression) specified by the <code>value</code> + attribute.</li> + <li>Does not support nested content (such as + <code><jsp:setProperty></code> tags) that are only executed + if a bean was actually created.</li> + </ul> + + <p><strong>USAGE NOTE</strong> - There is a restriction in the JSP 1.1 + Specification that disallows using the same value for an <code>id</code> + attribute more than once in a single JSP page. Therefore, you will not + be able to use <code><bean:define></code> for the same bean + name more than once in a single page.</p> + + <p><strong>USAGE NOTE</strong> - If you use another tag to create the + body content (e.g. bean:write), that tag must return a non-empty String. + An empty String equates to an empty body or a null String, and a new + scripting variable cannot be defined as null. Your bean must return a + non-empty String, or the define tag must be wrapped within a logic tag + to test for an empty or null value.</p> + + <p><strong>USAGE NOTE</strong> - You cannot use bean:define to <strong>instantiate</strong> + a DynaActionForm (type="org.apache.struts.action.DynaActionForm") with + the properties specified in the struts-config. The mechanics of creating + the dyna-properties is complex and cannot be handled by a no-argument + constructor. If you need to create an ActionForm this way, you must use + a conventional ActionForm. + </p> + + <p>See the Bean Developer's Guide section on + <a href="../api/org/apache/struts/taglib/bean/package-summary.html#doc.Creation"> + bean creation</a> for more information about these differences, as well + as alternative approaches to introducing beans into a JSP page.</p> + ]]> + </description> + <attribute> + <name>id</name> + <required>true</required> + <rtexprvalue>false</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the scripting variable (and associated page + scope attribute) that will be made available with the value of the + specified property.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the attribute name of the bean whose property is accessed + to define a new page scope attribute (if <code>property</code> is also + specified) or the attribute name of the bean that is duplicated with + the new reference created by this tag (if <code>property</code> is not + also specified). This attribute is required unless you specify + a <code>value</code> attribute or nested body content.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the property to be accessed on the bean + specified by <code>name</code>. This value may be a simple, indexed, + or nested property reference expression. If not specified, the bean + identified by <code>name</code> is given a new reference identified by + <code>id</code>.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the variable scope searched to retrieve the bean specified + by <code>name</code>. If not specified, the default rules applied by + <code>PageContext.findAttribute()</code> are applied.</p> + ]]> + </description> + </attribute> + <attribute> + <name>toScope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the variable scope into which the newly defined bean will + be created. If not specified, the bean will be created in + <code>page</code> scope.</p> + ]]> + </description> + </attribute> + <attribute> + <name>type</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the fully qualified class name of the value to be exposed + as the <code>id</code> attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The <code>java.lang.String</code> value to which the exposed bean + should be set. This attribute is required unless you specify the + <code>name</code> attribute or nested body content.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>header</name> + <tag-class>org.apache.struts.taglib.bean.HeaderTag</tag-class> + <tei-class>org.apache.struts.taglib.bean.HeaderTei</tei-class> + <body-content>empty</body-content> + <description> + <![CDATA[ + <p><strong> + Define a scripting variable based on the value(s) of the specified + request header. + </strong></p> + + <p>Retrieve the value of the specified request header (as a single + value or multiple values, depending on the <code>multiple</code> attribute), + and define the result as a page scope attribute of type <code>String</code> + (if <code>multiple</code> is not specified) or <code>String[]</code> + (if <code>multiple</code> is specified).</p> + + <p>If no header with the specified name can be located, and no default + value is specified, a request time exception will be thrown.</p> + ]]> + </description> + <attribute> + <name>id</name> + <required>true</required> + <rtexprvalue>false</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the scripting variable (and associated page + scope attribute) that will be made available with the value of the + specified request header.</p> + ]]> + </description> + </attribute> + <attribute> + <name>multiple</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>If any arbitrary value for this attribute is specified, causes a call + to <code>HttpServletRequest.getHeaders()</code> and a definition of the + result as a bean of type <code>String[]</code>. Otherwise, + <code>HttpServletRequest.getHeader()</code> will be called, and a + definition of the result as a bean of type <code>String</code> + will be performed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the request header whose value, or values, + is to be retrieved.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The default header value to return if no header with the + specified name was included in this request.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>include</name> + <tag-class>org.apache.struts.taglib.bean.IncludeTag</tag-class> + <tei-class>org.apache.struts.taglib.bean.IncludeTei</tei-class> + <body-content>empty</body-content> + <description> + <![CDATA[ + <p><strong> + Load the response from a dynamic application request and make it available + as a bean. + </strong></p> + + <p>Perform an internal dispatch to the specified application component + (or external URL) + and make the response data from that request available as a bean of + type <code>String</code>. This tag has a function similar to that of + the standard <code><jsp:include></code> tag, except that the + response data is stored in a page scope attribute instead of being + written to the output stream. If the current request is part of a + session, the generated request for the include will also include the + session identifier (and thus be part of the same session).</p> + + <p>The URL used to access the specified application component is + calculated based on which of the following attributes you specify + (you must specify exactly one of them):</p> + <ul> + <li><em>forward</em> - Use the value of this attribute as the name + of a global <code>ActionForward</code> to be looked up, and + use the module-relative or context-relative URI found there.</li> + <li><em>href</em> - Use the value of this attribute unchanged (since + this might link to a resource external to the application, the + session identifier is <strong>not</strong> included.</li> + <li><em>page</em> - Use the value of this attribute as an + module-relative URI to the desired resource.</li> + </ul> + ]]> + </description> + <attribute> + <name>anchor</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Optional anchor tag ("#xxx") to be added to the generated + hyperlink. Specify this value <strong>without</strong> any + "#" character.</p> + ]]> + </description> + </attribute> + <attribute> + <name>forward</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Logical name of a global <code>ActionForward</code> that contains + the actual content-relative URI of the resource to be included.</p> + ]]> + </description> + </attribute> + <attribute> + <name>href</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Absolute URL (including the appropriate protocol prefix such as + "http:") of the resource to be included. Because this URL could be + external to the current web application, the session identifier will + <strong>not</strong> be included in the request.</p> + ]]> + </description> + </attribute> + <attribute> + <name>id</name> + <required>true</required> + <rtexprvalue>false</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the scripting variable (and associated page + scope attribute) that will be made available with the value of the + specified web application resource.</p> + ]]> + </description> + </attribute> + <attribute> + <name>page</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Module-relative URI (starting with a '/') of the web application + resource to be included.</p> + ]]> + </description> + </attribute> + <attribute> + <name>transaction</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <type>boolean</type> + <description> + <![CDATA[ + <p>Set to <code>true</code> if you want the current + transaction control token included in the generated + URL for this include.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>message</name> + <tag-class>org.apache.struts.taglib.bean.MessageTag</tag-class> + <body-content>empty</body-content> + <description> + <![CDATA[ + <p><strong> + Render an internationalized message string to the response. + </strong></p> + + <p>Retrieves an internationalized message for the specified locale, + using the specified message key, and write it to the output stream. + Up to five parametric replacements (such as "{0}") may be specified.</p> + + <p>The message key may be specified directly, using the <code>key</code> + attribute, or indirectly, using the <code>name</code> and + <code>property</code> attributes to obtain it from a bean.</p> + + <p> + <strong>JSTL</strong>: The equivalent JSTL tag is <fmt:message>. For example, + <br/> + <code> + <fmt:message key="my.msg.key"> + <fmt:param value="replacement text"/> + </fmt:message> + </code> + </p> + ]]> + </description> + <attribute> + <name>arg0</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>First parametric replacement value, if any.</p> + ]]> + </description> + </attribute> + <attribute> + <name>arg1</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Second parametric replacement value, if any.</p> + ]]> + </description> + </attribute> + <attribute> + <name>arg2</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Third parametric replacement value, if any.</p> + ]]> + </description> + </attribute> + <attribute> + <name>arg3</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Fourth parametric replacement value, if any.</p> + ]]> + </description> + </attribute> + <attribute> + <name>arg4</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Fifth parametric replacement value, if any.</p> + ]]> + </description> + </attribute> + <attribute> + <name>bundle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of the application scope bean under which the + <code>MessageResources</code> object containing our messages + is stored.</p> + ]]> + </description> + </attribute> + <attribute> + <name>key</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The message key of the requested message, which must have + a corresponding value in the message resources. If not specified, + the key is obtained from the <code>name</code> and + <code>property</code> attributes.</p> + ]]> + </description> + </attribute> + <attribute> + <name>locale</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of the session scope bean under which our currently + selected <code>Locale</code> object is stored.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the attribute name of the bean whose property is accessed + to retrieve the value specified by <code>property</code> (if + specified). If <code>property</code> is not specified, the value of + this bean itself will be used as the message resource key.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the property to be accessed on the bean + specified by <code>name</code>. This value may be a simple, indexed, + or nested property reference expression. If not specified, the value + of the bean identified by <code>name</code> will itself be used as the + message resource key.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the variable scope searched to retrieve the bean specified + by <code>name</code>. If not specified, the default rules applied by + <code>PageContext.findAttribute()</code> are applied.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>page</name> + <tag-class>org.apache.struts.taglib.bean.PageTag</tag-class> + <tei-class>org.apache.struts.taglib.bean.PageTei</tei-class> + <body-content>empty</body-content> + <description> + <![CDATA[ + <p><strong> + Expose a specified item from the page context as a bean. + </strong></p> + + <p>Retrieve the value of the specified item from the page context + for this page, and define it as a scripting variable, and a page scope + attribute accessible to the remainder of the current page.</p> + + <p>If a problem occurs while retrieving the specified configuration + object, a request time exception will be thrown.</p> + ]]> + </description> + <attribute> + <name>id</name> + <required>true</required> + <rtexprvalue>false</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the scripting variable (and associated + page scope attribute) that will be made available with the value of + the specified page context property.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Name of the property from our page context to be retrieved and + exposed. Must be one of <code>application</code>, <code>config</code>, + <code>request</code>, <code>response</code>, or <code>session</code>. + </p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>parameter</name> + <tag-class>org.apache.struts.taglib.bean.ParameterTag</tag-class> + <tei-class>org.apache.struts.taglib.bean.ParameterTei</tei-class> + <body-content>empty</body-content> + <description> + <![CDATA[ + <p><strong> + Define a scripting variable based on the value(s) of the specified + request parameter. + </strong></p> + + <p>Retrieve the value of the specified request parameter (as a single + value or multiple values, depending on the <code>multiple</code> attribute), + and define the result as a page scope attribute of type <code>String</code> + (if <code>multiple</code> is not specified) or <code>String[]</code> + (if <code>multiple</code> is specified).</p> + + <p>If no request parameter with the specified name can be located, and + no default value is specified, a request time exception will be thrown.</p> + ]]> + </description> + <attribute> + <name>id</name> + <required>true</required> + <rtexprvalue>false</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the scripting variable (and associated page + scope attribute) that will be made available with the value of the + specified request parameter.</p> + ]]> + </description> + </attribute> + <attribute> + <name>multiple</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>If any arbitrary value for this attribute is specified, causes a call + to <code>ServletRequest.getParameterValues()</code> and a definition of + the result as a bean of type <code>String[]</code>. Otherwise, + <code>ServletRequest.getParameter()</code> will be called, and a + definition of the result as a bean of type <code>String</code> + will be performed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the request parameter whose value, or values, + is to be retrieved.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The default parameter value to return if no parameter with the + specified name was included in this request.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>resource</name> + <tag-class>org.apache.struts.taglib.bean.ResourceTag</tag-class> + <tei-class>org.apache.struts.taglib.bean.ResourceTei</tei-class> + <body-content>empty</body-content> + <description> + <![CDATA[ + <p><strong> + Load a web application resource and make it available as a bean. + </strong></p> + + <p>Retrieve the value of the specified web application resource, and make + it available as either a <code>InputStream</code> or a <code>String</code>, + depending on the value of the <code>input</code> attribute.</p> + + <p>If a problem occurs while retrieving the specified resource, a + request time exception will be thrown.</p> + ]]> + </description> + <attribute> + <name>id</name> + <required>true</required> + <rtexprvalue>false</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the scripting variable (and associated page + scope attribute) that will be made available with the value of the + specified web application resource.</p> + ]]> + </description> + </attribute> + <attribute> + <name>input</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>If any arbitrary value for this attribute is specified, the resource + will be made available as an <code>InputStream</code>. If this + attribute is not specified, the resource will be made available + as a <code>String</code>.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Module-relative name (starting with a '/') of the web application + resource to be loaded and made available.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>size</name> + <tag-class>org.apache.struts.taglib.bean.SizeTag</tag-class> + <tei-class>org.apache.struts.taglib.bean.SizeTei</tei-class> + <body-content>empty</body-content> + <description> + <![CDATA[ + <p><strong> + Define a bean containing the number of elements in a Collection or Map. + </strong></p> + + <p>Given a reference to an array, Collection or Map, creates a new bean, of + type <code>java.lang.Integer</code>, whose value is the number of elements + in that collection. You can specify the collection to be counted in any + one of the following ways:</p> + <ul> + <li>As a runtime expression specified as the value of the + <code>collection</code> attribute.</li> + <li>As a JSP bean specified by the <code>name</code> attribute.</li> + <li>As the property, specified by the <code>property</code> attribute, + of the JSP bean specified by the <code>name</code> attribute.</li> + </ul> + ]]> + </description> + <attribute> + <name>collection</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <type>java.lang.Object</type> + <description> + <![CDATA[ + <p>A runtime expression that evaluates to an array, a Collection, or + a Map.</p> + ]]> + </description> + </attribute> + <attribute> + <name>id</name> + <required>true</required> + <rtexprvalue>false</rtexprvalue> + <description> + <![CDATA[ + <p>The name of a page scope JSP bean, of type + <code>java.lang.Integer</code>, that will be created to contain the + size of the underlying collection being counted.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of the JSP bean (optionally constrained to the scope + specified by the <code>scope</code> attribute) that contains the + collection to be counted (if <code>property</code> is not specified), + or whose property getter is called to return the collection to be + counted (if <code>property</code> is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of the property, of the bean specified by the + <code>name</code> attribute, whose getter method will return the + collection to be counted.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the JSP bean specified + by the <code>name</code> attribute. If not specified, the available + scopes are searched in ascending sequence.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>struts</name> + <tag-class>org.apache.struts.taglib.bean.StrutsTag</tag-class> + <tei-class>org.apache.struts.taglib.bean.StrutsTei</tei-class> + <body-content>empty</body-content> + <description> + <![CDATA[ + <p><strong> + Expose a named Struts internal configuration object as a bean. + </strong></p> + + <p>Retrieve the value of the specified Struts internal configuration + object, and define it as a scripting variable and as a page scope + attribute accessible to the remainder of the current page. You must + specify exactly one of the <code>formBean</code>, <code>forward</code>, + and <code>mapping</code> attributes to select the configuration object + to be exposed.</p> + + <p>If a problem occurs while retrieving the specified configuration + object, a request time exception will be thrown.</p> + ]]> + </description> + <attribute> + <name>id</name> + <required>true</required> + <rtexprvalue>false</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the scripting variable (and associated + page scope attribute) that will be made available with the value of + the specified Struts internal configuration object.</p> + ]]> + </description> + </attribute> + <attribute> + <name>formBean</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the Struts <code>ActionFormBean</code> + definition object to be exposed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>forward</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the global Struts <code>ActionForward</code> + definition object to be exposed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>mapping</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the matching path of the Struts <code>ActionMapping</code> + definition object to be exposed.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>write</name> + <tag-class>org.apache.struts.taglib.bean.WriteTag</tag-class> + <body-content>empty</body-content> + <description> + <![CDATA[ + <p><strong> + Render the value of the specified bean property to the current + JspWriter. + </strong></p> + + <p>Retrieve the value of the specified bean property, and render it to the + current JspWriter as a String by the ways:</p> + <ul> + <li>If <code>format</code> attribute exists then value will be formatted on base of format + string from <code>format</code> attribute and default system locale.</li> + <li>If in resources exists format string for value data type (view <code>format</code> + attribute description) then value will be formatted on base of format string + from resources. Resources bundle and target locale can be specified with + <code>bundle</code> and <code>locale</code> attributes. If nothing specified then + default resource bundle and current user locale will be used.</li> + <li>If there is a PropertyEditor configured for the property value's class, the + <code>getAsText()</code> method will be called.</li> + <li>Otherwise, the usual <code>toString()</code> conversions will be applied.</li> + </ul> + <p>When a format string is provided, numeric values are formatted using the + <code>java.text.DecimalFormat</code> class; if the format string came from + a resource, the <code>applyLocalisedPattern()</code> method is used, and + <code>applyPattern()</code> is used otherwise. Dates are formatted using + the <code>SimpleDateFormat</code> class. For details of the specific format + patterns, please see the Javadocs for those classes.</p> + <p>If a problem occurs while retrieving the specified bean property, a + request time exception will be thrown.</p> + ]]> + </description> + <attribute> + <name>bundle</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of the application scope bean under which the + <code>MessageResources</code> object containing our messages + is stored.</p> + ]]> + </description> + </attribute> + <attribute> + <name>filter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <type>boolean</type> + <description> + <![CDATA[ + <p>If this attribute is set to <code>true</code>, the rendered property + value will be filtered for characters that are sensitive in HTML, and any + such characters will be replaced by their entity equivalents.</p> + ]]> + </description> + </attribute> + <attribute> + <name>format</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the format string to use to convert bean or property value + to the <code>String</code>. If nothing specified, then default format + string for value data type will be searched in message resources by + according key.</p> +<!-- move to developers guide + <table> + <tr> + <td>Key to search format string</td> + <td>Data types</td> + </tr> + <tr> + <td>org.apache.struts.taglib.bean.format.int</td> + <td>java.lang.Byte, java.lang.Short, java.lang.Integer, java.lang.Long, + java.math.BigInteger</td> + </tr> + <tr> + <td>org.apache.struts.taglib.bean.format.float</td> + <td>java.lang.Float, java.lang.Double, java.math.BigDecimal</td> + </tr> + <tr> + <td>org.apache.struts.taglib.bean.format.sql.timestamp</td> + <td>java.sql.Timestamp</td> + </tr> + <tr> + <td>org.apache.struts.taglib.bean.format.sql.date</td> + <td>java.sql.Date</td> + </tr> + <tr> + <td>org.apache.struts.taglib.bean.format.sql.time</td> + <td>java.sql.Time</td> + </tr> + <tr> + <td>org.apache.struts.taglib.bean.format.date</td> + <td>java.util.Date</td> + </tr> + </table> + <p>Default format strings in resources can be written as - <br /> + <pre> + org.apache.struts.taglib.bean.format.int=###### + org.apache.struts.taglib.bean.format.float=######,#### + org.apache.struts.taglib.bean.format.sql.timestamp=hh 'o''clock' a, zzzz + org.apache.struts.taglib.bean.format.sql.date=EEE, MMM d, ''yy + org.apache.struts.taglib.bean.format.sql.time=h:mm a + org.apache.struts.taglib.bean.format.date=hh 'o''clock' a, zzzz + </pre> + <br />values for resource file entries are standart Java format strings for + date, time and number values.</p> +--> + ]]> + </description> + </attribute> + <attribute> + <name>formatKey</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the key to search format string in application resources.</p> + ]]> + </description> + </attribute> + <attribute> + <name>ignore</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <type>boolean</type> + <description> + <![CDATA[ + <p>If this attribute is set to <code>true</code>, and the bean specified + by the <code>name</code> and <code>scope</code> attributes does not + exist, simply return without writing anything. If this attribute is + set to <code>false</code>, a runtime exception to be thrown, + consistent with the other tags in this tag library.</p> + ]]> + </description> + </attribute> + <attribute> + <name>locale</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of the session scope bean under which our currently + selected <code>Locale</code> object is stored.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the attribute name of the bean whose property is accessed + to retrieve the value specified by <code>property</code> (if + specified). If <code>property</code> is not specified, the value of + this bean itself will be rendered.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the name of the property to be accessed on the bean + specified by <code>name</code>. This value may be a simple, indexed, + or nested property reference expression. If not specified, the bean + identified by <code>name</code> will itself be rendered. If the + specified property returns null, no output will be rendered.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Specifies the variable scope searched to retrieve the bean specified + by <code>name</code>. If not specified, the default rules applied by + <code>PageContext.findAttribute()</code> are applied.</p> + ]]> + </description> + </attribute> + </tag> </taglib> diff --git a/src/main/webapp/WEB-INF/tlds/struts-logic.tld b/src/main/webapp/WEB-INF/tlds/struts-logic.tld index bf03f24..fe638ae 100755 --- a/src/main/webapp/WEB-INF/tlds/struts-logic.tld +++ b/src/main/webapp/WEB-INF/tlds/struts-logic.tld @@ -1,561 +1,1892 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + $Id: struts-logic.tld 481833 2006-12-03 17:32:52Z niallp $ + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!DOCTYPE taglib + PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" + "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> +<taglib> + <tlib-version>1.3</tlib-version> + <jsp-version>1.2</jsp-version> + <short-name>logic</short-name> + <uri>http://struts.apache.org/tags-logic</uri> + <description> + <![CDATA[ + <p><strong>Note: Some of the features in this taglib are also + available in the <a href="http://java.sun.com/products/jsp/jstl/">JavaServer Pages Standard Tag Library (JSTL)</a>. + The Struts team encourages the use of the standard tags over the Struts + specific tags when possible.</strong></p> + <p>This 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> + <p>For tags that do value comparisons (<code>equal</code>, + <code>greaterEqual</code>, <code>greaterThan</code>, <code>lessEqual</code>, + <code>lessThan</code>, <code>notEqual</code>), the following rules apply:</p> + <ul> + <li>The specified value is examined. If it can be converted successfully + to a <code>double</code> or a <code>long</code>, it is assumed that the + ultimate comparison will be numeric (either floating point or integer). + Otherwise, a String comparison will be performed.</li> + <li>The variable to be compared to is retrieved, based on the selector + attribute(s) (<code>cookie</code>, <code>header</code>, + <code>name</code>, <code>parameter</code>, <code>property</code>) + present on this tag. It will be converted to the appropriate type + for the comparison, as determined above.</li> + <li>If the specified variable or property returns null, it will be + coerced to a zero-length string before the comparison occurs.</li> + <li>The specific comparison for this tag will be performed, and the nested + body content of this tag will be evaluated if the comparison returns + a <code>true</code> result.</li> + </ul> + <p>For tags that do substring matching (<code>match</code>, + <code>notMatch</code>), the following rules apply:</p> + <ul> + <li>The specified variable is retrieved, based on the selector attribute(s) + (<code>cookie</code>, <code>header</code>, <code>name</code>, + <code>parameter</code>, <code>property</code>) present on this tag. + The variable is converted to a String, if necessary.</li> + <li>A request time exception will be thrown if the specified variable + cannot be retrieved, or has a null value.</li> + <li>The specified value is checked for existence as a substring of the + variable, in the position specified by the <code>location</code> + attribute, as follows: at the beginning (if location is set to + <code>start</code>), at the end (if location is set to + <code>end</code>), or anywhere (if location is not specified).</li> + </ul> + <p>Many of the tags in this tag library will throw a + <code>JspException</code> at runtime when they are utilized incorrectly + (such as when you specify an invalid combination of tag attributes). JSP + allows you to declare an "error page" in the <code><%@ page %></code> + directive. If you wish to process the actual exception that caused the + problem, it is passed to the error page as a request attribute under key + <code>org.apache.struts.action.EXCEPTION</code>.</p> -<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> -<taglib> -<tlibversion>1.0</tlibversion> -<jspversion>1.1</jspversion> -<shortname>logic</shortname> -<uri>http://jakarta.apache.org/struts/tags-logic-1.0</uri> -<tag> -<name>equal</name> -<tagclass>org.apache.struts.taglib.logic.EqualTag</tagclass> -<bodycontent>JSP</bodycontent> -<attribute> -<name>cookie</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>header</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>parameter</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>forward</name> -<tagclass>org.apache.struts.taglib.logic.ForwardTag</tagclass> -<bodycontent>empty</bodycontent> -<attribute> -<name>name</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>greaterEqual</name> -<tagclass>org.apache.struts.taglib.logic.GreaterEqualTag</tagclass> -<bodycontent>JSP</bodycontent> -<attribute> -<name>cookie</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>header</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>parameter</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>greaterThan</name> -<tagclass>org.apache.struts.taglib.logic.GreaterThanTag</tagclass> -<bodycontent>JSP</bodycontent> -<attribute> -<name>cookie</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>header</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>parameter</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>iterate</name> -<tagclass>org.apache.struts.taglib.logic.IterateTag</tagclass> -<teiclass>org.apache.struts.taglib.logic.IterateTei</teiclass> -<bodycontent>JSP</bodycontent> -<attribute> -<name>collection</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>id</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>indexId</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>length</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>offset</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>type</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>lessEqual</name> -<tagclass>org.apache.struts.taglib.logic.LessEqualTag</tagclass> -<bodycontent>JSP</bodycontent> -<attribute> -<name>cookie</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>header</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>parameter</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>lessThan</name> -<tagclass>org.apache.struts.taglib.logic.LessThanTag</tagclass> -<bodycontent>JSP</bodycontent> -<attribute> -<name>cookie</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>header</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>parameter</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>match</name> -<tagclass>org.apache.struts.taglib.logic.MatchTag</tagclass> -<bodycontent>JSP</bodycontent> -<attribute> -<name>cookie</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>header</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>location</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>parameter</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>notEqual</name> -<tagclass>org.apache.struts.taglib.logic.NotEqualTag</tagclass> -<bodycontent>JSP</bodycontent> -<attribute> -<name>cookie</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>header</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>parameter</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>notMatch</name> -<tagclass>org.apache.struts.taglib.logic.NotMatchTag</tagclass> -<bodycontent>JSP</bodycontent> -<attribute> -<name>cookie</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>header</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>location</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>parameter</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>value</name> -<required>true</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>notPresent</name> -<tagclass>org.apache.struts.taglib.logic.NotPresentTag</tagclass> -<bodycontent>JSP</bodycontent> -<attribute> -<name>cookie</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>header</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>parameter</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>role</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>user</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>present</name> -<tagclass>org.apache.struts.taglib.logic.PresentTag</tagclass> -<bodycontent>JSP</bodycontent> -<attribute> -<name>cookie</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>header</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>parameter</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>role</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>user</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> -<tag> -<name>redirect</name> -<tagclass>org.apache.struts.taglib.logic.RedirectTag</tagclass> -<attribute> -<name>anchor</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>forward</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>href</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>name</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>page</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>paramId</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>paramName</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>paramProperty</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>paramScope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>property</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>scope</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -<attribute> -<name>transaction</name> -<required>false</required> -<rtexprvalue>true</rtexprvalue> -</attribute> -</tag> + ]]> + </description> + <tag> + <name>empty</name> + <tag-class>org.apache.struts.taglib.logic.EmptyTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Evaluate the nested body content of this tag if the requested variable is + either null or an empty string. + </strong></p> + + <p>This tag evaluates its nested body content only if the specified value + is either absent (i.e. <code>null</code>), an empty string (i.e. a + <code>java.lang.String</code> with a length of zero), or an empty + <code>java.util.Collection</code> or <code>java.util.Map</code> (tested by + the .isEmpty() method on the respective interface).</p> + + <p> + <strong>JSTL</strong>: The equivalent JSTL tag is <c:if> using the + <code>empty</code> operator. For example, + <br/> + <code> + <c:if test="${empty sessionScope.myBean.myProperty}"> + do something + </c:if> + </code> + </p> + + <dl><dt><b>Since:</b></dt> + <dd>Struts 1.1</dd></dl> + ]]> + </description> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the JSP bean specified by this + attribute, if <code>property</code> is not specified, or the value + of the specified property of this bean, if <code>property</code> + is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the property (of the bean specified + by the <code>name</code> attribute) specified by this attribute. + The property reference can be simple, nested, and/or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>equal</name> + <tag-class>org.apache.struts.taglib.logic.EqualTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Evaluate the nested body content of this tag if the requested + variable is equal to the specified value. + </strong></p> + + <p>Compares the variable specified by one of the selector attributes + against the specified constant value. The nested body content of this + tag is evaluated if the variable and value are <strong>equal</strong>. + </p> + ]]> + </description> + <attribute> + <name>cookie</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the cookie whose + name is specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>header</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the header whose + name is specified by this attribute. The name match is performed + in a case insensitive manner.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the JSP bean specified by this + attribute, if <code>property</code> is not specified, or the value + of the specified property of this bean, if <code>property</code> + is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>parameter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the first, or only, value of the + request parameter specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the property (of the bean specified + by the <code>name</code> attribute) specified by this attribute. + The property reference can be simple, nested, and/or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The constant value to which the variable, specified by other + attribute(s) of this tag, will be compared.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>forward</name> + <tag-class>org.apache.struts.taglib.logic.ForwardTag</tag-class> + <body-content>empty</body-content> + <description> + <![CDATA[ + <p><strong> + Forward control to the page specified by the specified ActionForward + entry. + </strong></p> + + <p>Performs a <code>PageContext.forward()</code> or + <code>HttpServletResponse.sendRedirect()</code> call for the global + <code>ActionForward</code> entry for the specified name. URL + rewriting will occur automatically if a redirect is performed.</p> + ]]> + </description> + <attribute> + <name>name</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p> + The logical name of the global <code>ActionForward</code> entry + that identifies the destination, and forwarding approach, to be used. + <strong>Note</strong>: forwarding to Tiles definitions is not supported + from this tag. You should forward to them from an Action subclass. + </p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>greaterEqual</name> + <tag-class>org.apache.struts.taglib.logic.GreaterEqualTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Evaluate the nested body content of this tag if the requested + variable is greater than or equal to the specified value. + </strong></p> + + <p>Compares the variable specified by one of the selector attributes + against the specified constant value. The nested body content of this + tag is evaluated if the variable is <strong>greater than or equal</strong> + to the value.</p> + ]]> + </description> + <attribute> + <name>cookie</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the cookie whose + name is specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>header</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the header whose + name is specified by this attribute. The name match is performed + in a case insensitive manner.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the JSP bean specified by this + attribute, if <code>property</code> is not specified, or the value + of the specified property of this bean, if <code>property</code> + is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>parameter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the first, or only, value of the + request parameter specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the property (of the bean specified + by the <code>name</code> attribute) specified by this attribute. + The property reference can be simple, nested, and/or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The constant value to which the variable, specified by other + attribute(s) of this tag, will be compared.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>greaterThan</name> + <tag-class>org.apache.struts.taglib.logic.GreaterThanTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Evaluate the nested body content of this tag if the requested + variable is greater than the specified value. + </strong></p> + + <p>Compares the variable specified by one of the selector attributes + against the specified constant value. The nested body content of this + tag is evaluated if the variable is <strong>greater than</strong> + the value.</p> + ]]> + </description> + <attribute> + <name>cookie</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the cookie whose + name is specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>header</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the header whose + name is specified by this attribute. The name match is performed + in a case insensitive manner.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the JSP bean specified by this + attribute, if <code>property</code> is not specified, or the value + of the specified property of this bean, if <code>property</code> + is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>parameter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the first, or only, value of the + request parameter specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the property (of the bean specified + by the <code>name</code> attribute) specified by this attribute. + The property reference can be simple, nested, or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The constant value to which the variable, specified by other + attribute(s) of this tag, will be compared.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>iterate</name> + <tag-class>org.apache.struts.taglib.logic.IterateTag</tag-class> + <tei-class>org.apache.struts.taglib.logic.IterateTei</tei-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Repeat the nested body content of this tag over a specified collection. + </strong></p> + + <p>Repeats the nested body content of this tag once for every element + of the specified collection, which must be an <code>Iterator</code>, + a <code>Collection</code>, a <code>Map</code> (whose values are to be + iterated over), or an array. The collection to be iterated over must be + specified in one of the following ways:</p> + <ul> + <li>As a runtime expression specified as the value of the + <code>collection</code> attribute.</li> + <li>As a JSP bean specified by the <code>name</code> attribute.</li> + <li>As the property, specified by the <code>property</code>, of the + JSP bean specified by the <code>name</code> attribute.</li> + </ul> + + <p>The collection to be iterated over MUST conform to one of the following + requirements in order for iteration to be successful:</p> + <ul> + <li>An array of Java objects or primitives.</li> + + <li>An implementation of <code>java.util.Collection</code>, including + <code>ArrayList</code> and <code>Vector</code>.</li> + <li>An implementation of <code>java.util.Enumeration</code>.</li> + <li>An implementation of <code>java.util.Iterator</code>.</li> + <li>An implementation of <code>java.util.Map</code>, including + <code>HashMap</code>, <code>Hashtable</code>, and + <code>TreeMap</code>. <strong>NOTE</strong> - See below for + additional information about accessing Maps.</li> + </ul> + + <p>Normally, each object exposed by the iterate tag is an element + of the underlying collection you are iterating over. However, if you + iterate over a <code>Map</code>, the exposed object is of type + <code>Map.Entry</code> that has two properties:</p> + <ul> + <li><code>key</code> - The key under which this item is stored in the + underlying Map.</li> + <li><code>value</code> - The value that corresponds to this key.</li> + </ul> + + <p>So, if you wish to iterate over the values of a Hashtable, you would + implement code like the following:</p> + <code> + <logic:iterate id="element" name="myhashtable"><br/> + Next element is <bean:write name="element" property="value"/><br/> + </logic:iterate> + </code> + + <p>If the collection you are iterating over can contain <code>null</code> + values, the loop will still be performed but no page scope attribute + (named by the <code>id</code> attribute) will be created for that loop + iteration. You can use the <code><logic:present></code> and + <code><logic:notPresent></code> tags to test for this case.</p> + + ]]> + </description> + <attribute> + <name>collection</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <type>java.lang.Object</type> + <description> + <![CDATA[ + <p>A runtime expression that evaluates to a collection (conforming to + the requirements listed above) to be iterated over.</p> + ]]> + </description> + </attribute> + <attribute> + <name>id</name> + <required>true</required> + <rtexprvalue>false</rtexprvalue> + <description> + <![CDATA[ + <p>The name of a page scope JSP bean that will contain the current + element of the collection on each iteration, if it is not + <code>null</code>.</p> + ]]> + </description> + </attribute> + <attribute> + <name>indexId</name> + <required>false</required> + <rtexprvalue>false</rtexprvalue> + <description> + <![CDATA[ + <p>The name of a page scope JSP bean that will contain the current + index of the collection on each iteration.</p> + ]]> + </description> + </attribute> + <attribute> + <name>length</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>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 <code>java.lang.Integer</code> that defines the + desired value. If not present, there will be no limit on the number + of iterations performed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of the JSP bean containing the collection to be iterated + (if <code>property</code> is not specified), or the JSP bean whose + property getter returns the collection to be iterated (if + <code>property</code> is specified).</p> + ]]> + </description> + </attribute> + <attribute> + <name>offset</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>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 <code>java.lang.Integer</code> that + defines the desired value. If not present, zero is assumed (meaning + that the collection will be iterated from the beginning.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Name of the property, of the JSP bean specified by <code>name</code>, + whose getter returns the collection to be iterated.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>type</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Fully qualified Java class name of the element to be exposed through + the JSP bean named from the <code>id</code> 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.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>lessEqual</name> + <tag-class>org.apache.struts.taglib.logic.LessEqualTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Evaluate the nested body content of this tag if the requested + variable is less than or equal to the specified value. + </strong></p> + + <p>Compares the variable specified by one of the selector attributes + against the specified constant value. The nested body content of this + tag is evaluated if the variable is <strong>less than or equal</strong> + to the value.</p> + ]]> + </description> + <attribute> + <name>cookie</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the cookie whose + name is specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>header</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the header whose + name is specified by this attribute. The name match is performed + in a case insensitive manner.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the JSP bean specified by this + attribute, if <code>property</code> is not specified, or the value + of the specified property of this bean, if <code>property</code> + is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>parameter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the first, or only, value of the + request parameter specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the property (of the bean specified + by the <code>name</code> attribute) specified by this attribute. + The property reference can be simple, nested, or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The constant value to which the variable, specified by other + attribute(s) of this tag, will be compared.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>lessThan</name> + <tag-class>org.apache.struts.taglib.logic.LessThanTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Evaluate the nested body content of this tag if the requested + variable is less than the specified value. + </strong></p> + + <p>Compares the variable specified by one of the selector attributes + against the specified constant value. The nested body content of this + tag is evaluated if the variable is <strong>less than</strong> + the value.</p> + ]]> + </description> + <attribute> + <name>cookie</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the cookie whose + name is specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>header</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the header whose + name is specified by this attribute. The name match is performed + in a case insensitive manner.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the JSP bean specified by this + attribute, if <code>property</code> is not specified, or the value + of the specified property of this bean, if <code>property</code> + is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>parameter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the first, or only, value of the + request parameter specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the property (of the bean specified + by the <code>name</code> attribute) specified by this attribute. + The property reference can be simple, nested, and/or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The constant value to which the variable, specified by other + attribute(s) of this tag, will be compared.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>match</name> + <tag-class>org.apache.struts.taglib.logic.MatchTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Evaluate the nested body content of this tag if the specified value + is an appropriate substring of the requested variable. + </strong></p> + + <p>Matches the variable specified by one of the selector attributes + (as a String) against the specified constant value. If the value is + a substring (appropriately limited by the <code>location</code> + attribute), the nested body content of this tag is evaluated.</p> + ]]> + </description> + <attribute> + <name>cookie</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be matched is the value of the cookie whose + name is specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>header</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be matched is the value of the header whose + name is specified by this attribute. The name match is performed + in a case insensitive manner.</p> + ]]> + </description> + </attribute> + <attribute> + <name>location</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>If not specified, a match between the variable and the value may + occur at any position within the variable string. If specified, the + match must occur at the specified location (either <code>start</code> + or <code>end</code>) of the variable string.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be matched is the JSP bean specified by this + attribute, if <code>property</code> is not specified, or the value + of the specified property of this bean, if <code>property</code> + is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>parameter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be matched is the first, or only, value of the + request parameter specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be matched is the property (of the bean specified + by the <code>name</code> attribute) specified by this attribute. + The property reference can be simple, nested, and/or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The constant value which is checked for existence as a substring + of the specified variable.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>messagesNotPresent</name> + <tag-class> + org.apache.struts.taglib.logic.MessagesNotPresentTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Generate the nested body content of this tag if the specified + message is not present in any scope. + </strong></p> + + <p>Evaluates the nested body content of this tag if + an <code>ActionMessages</code> + object, <code>ActionErrors</code> object, a String, + or a String array is not present in any scope. If + such a bean is found, nothing will be rendered. + </p> + + <dl><dt><b>Since:</b></dt> + <dd>Struts 1.1</dd></dl> + ]]> + </description> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The parameter key used to retrieve the message from page, request, + session or application scope.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Name of the property for which messages should be + retrieved. If not specified, all messages (regardless + of property) are retrieved. + </p> + ]]> + </description> + </attribute> + <attribute> + <name>message</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>By default the tag will retrieve the bean it will + iterate over from the <code>Globals.ERROR_KEY</code> constant string, + but if this attribute is set to 'true' the bean + will be retrieved from the <code>Globals.MESSAGE_KEY</code> + constant string. Also if this is set to 'true', any value + assigned to the name attribute will be ignored. + </p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>messagesPresent</name> + <tag-class> + org.apache.struts.taglib.logic.MessagesPresentTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Generate the nested body content of this tag if the specified + message is present in any scope. + </strong></p> + + <p>Evaluates the nested body content of this tag if + an <code>ActionMessages</code> + object, <code>ActionErrors</code> object, a String, + or a String array is present in any scope. If + such a bean is not found, nothing will be rendered. + </p> + + <dl><dt><b>Since:</b></dt> + <dd>Struts 1.1</dd></dl> + ]]> + </description> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The parameter key used to retrieve the message from page, request, + session, or application scope.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Name of the property for which messages should be + retrieved. If not specified, all messages (regardless + of property) are retrieved. + </p> + ]]> + </description> + </attribute> + <attribute> + <name>message</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>By default the tag will retrieve the bean it will + iterate over from the <code>Globals.ERROR_KEY</code> constant string, + but if this attribute is set to 'true' the bean + will be retrieved from the <code>Globals.MESSAGE_KEY</code> + constant string. Also if this is set to 'true', any value + assigned to the name attribute will be ignored. + </p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>notEmpty</name> + <tag-class>org.apache.struts.taglib.logic.NotEmptyTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Evaluate the nested body content of this tag if the requested variable is + neither null, nor an empty string, nor an empty java.util.Collection + (tested by the .isEmpty() method on the java.util.Collection interface). + </strong></p> + + <p>This tag evaluates its nested body content only if the specified value + is present (i.e. not <code>null</code>) and is not an empty string (i.e. a + <code>java.lang.String</code> with a length of zero).</p> + + <p> + <strong>JSTL</strong>: The equivalent JSTL tag is <c:if> using the + <code>! empty</code> operator. For example, + <br/> + <code> + <c:if test="${ ! empty sessionScope.myBean.myProperty}"> + do something + </c:if> + </code> + </p> + ]]> + </description> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the JSP bean specified by this + attribute, if <code>property</code> is not specified, or the value + of the specified property of this bean, if <code>property</code> + is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the property (of the bean specified + by the <code>name</code> attribute) specified by this attribute. + The property reference can be simple, nested, and/or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>notEqual</name> + <tag-class>org.apache.struts.taglib.logic.NotEqualTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Evaluate the nested body content of this tag if the requested + variable is not equal to the specified value. + </strong></p> + + <p>Compares the variable specified by one of the selector attributes + against the specified constant value. The nested body content of this + tag is evaluated if the variable and value are <strong>not equal</strong>. + </p> + ]]> + </description> + <attribute> + <name>cookie</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the cookie whose + name is specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>header</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the value of the header whose + name is specified by this attribute. The name match is performed + in a case insensitive manner.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the JSP bean specified by this + attribute, if <code>property</code> is not specified, or the value + of the specified property of this bean, if <code>property</code> + is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>parameter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the first, or only, value of the + request parameter specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be compared is the property (of the bean specified + by the <code>name</code> attribute) specified by this attribute. + The property reference can be simple, nested, and/or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The constant value to which the variable, specified by other + attribute(s) of this tag, will be compared.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>notMatch</name> + <tag-class>org.apache.struts.taglib.logic.NotMatchTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Evaluate the nested body content of this tag if the specified value + is not an appropriate substring of the requested variable. + </strong></p> + + <p>Matches the variable specified by one of the selector attributes + (as a String) against the specified constant value. If the value is + not a substring (appropriately limited by the <code>location</code> + attribute), the nested body content of this tag is evaluated.</p> + ]]> + </description> + <attribute> + <name>cookie</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be matched is the value of the cookie whose + name is specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>header</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be matched is the value of the header whose + name is specified by this attribute. The name match is performed + in a case insensitive manner.</p> + ]]> + </description> + </attribute> + <attribute> + <name>location</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>If not specified, a match between the variable and the value may + occur at any position within the variable string. If specified, the + match must occur at the specified location (either <code>start</code> + or <code>end</code>) of the variable string.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be matched is the JSP bean specified by this + attribute, if <code>property</code> is not specified, or the value + of the specified property of this bean, if <code>property</code> + is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>parameter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be matched is the first, or only, value of the + request parameter specified by this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The variable to be matched is the property (of the bean specified + by the <code>name</code> attribute) specified by this attribute. + The property reference can be simple, nested, and/or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>value</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The constant value which is checked for existence as a substring + of the specified variable.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>notPresent</name> + <tag-class>org.apache.struts.taglib.logic.NotPresentTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Generate the nested body content of this tag if the specified + value is not present in this request. + </strong></p> + + <p>Depending on which attribute is specified, this tag checks the + current request, and evaluates the nested body content of this tag + only if the specified value <strong>is not</strong> present. Only one + of the attributes may be used in one occurrence of this tag, unless + you use the <code>property</code> attribute, in which case the + <code>name</code> attribute is also required.</p> + ]]> + </description> + <attribute> + <name>cookie</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks for the existence of a cookie with the specified name.</p> + ]]> + </description> + </attribute> + <attribute> + <name>header</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks for the existence of an HTTP header with the specified + name. The name match is performed in a case insensitive manner.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks for the existence of a JSP bean, in any scope, with the + specified name. If <code>property</code> is also specified, checks + for a non-null property value for the specified property.</p> + ]]> + </description> + </attribute> + <attribute> + <name>parameter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks for the existence of at least one occurrence of the + specified request parameter on this request, even if the parameter + value is a zero-length string.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks for the existence of a non-null property value, returned + by a property getter method on the JSP bean (in any scope) that is + specified by the <code>name</code> attribute. Property references + can be simple, nested, and/or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>role</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks whether the currently authenticated user (if any) has been + associated with the specified security role.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>user</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks whether the currently authenticated user principal has the + specified name.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>present</name> + <tag-class>org.apache.struts.taglib.logic.PresentTag</tag-class> + <body-content>JSP</body-content> + <description> + <![CDATA[ + <p><strong> + Generate the nested body content of this tag if the specified + value is present in this request. + </strong></p> + + <p>Depending on which attribute is specified, this tag checks the + current request, and evaluates the nested body content of this tag + only if the specified value <strong>is</strong> present. Only one + of the attributes may be used in one occurrence of this tag, unless + you use the <code>property</code> attribute, in which case the + <code>name</code> attribute is also required.</p> + ]]> + </description> + <attribute> + <name>cookie</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks for the existence of a cookie with the specified name.</p> + ]]> + </description> + </attribute> + <attribute> + <name>header</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks for the existence of an HTTP header with the specified + name. The name match is performed in a case insensitive manner.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks for the existence of a JSP bean, in any scope, with the + specified name. If <code>property</code> is also specified, checks + for a non-null property value for the specified property.</p> + ]]> + </description> + </attribute> + <attribute> + <name>parameter</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks for the existence of at least one occurrence of the + specified request parameter on this request, even if the parameter + value is a zero-length string.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks for the existence of a non-null property value, returned + by a property getter method on the JSP bean (in any scope) that is + specified by the <code>name</code> attribute. Property references + can be simple, nested, and/or indexed.</p> + ]]> + </description> + </attribute> + <attribute> + <name>role</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks whether the currently authenticated user (if any) has been + associated with any of the specified security roles. Use a comma-delimited + list to check for multiple roles. Example: + <code><logic:present role="role1,role2,role3"> + code..... + </logic:present></code></p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The bean scope within which to search for the bean named by the + <code>name</code> property, or "any scope" if not specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>user</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Checks whether the currently authenticated user principal has the + specified name.</p> + ]]> + </description> + </attribute> + </tag> + <tag> + <name>redirect</name> + <tag-class>org.apache.struts.taglib.logic.RedirectTag</tag-class> + <description> + <![CDATA[ + <p><strong>Render an HTTP Redirect</strong></p> + + + <p>Performs an <code>HttpServletResponse.sendRedirect()</code> + call to the hyperlink specified by the attributes to this + tag. URL rewriting will be applied automatically, to + maintain session state in the absence of cookies.</p> + + <p>The base URL for this redirect is calculated based on + which of the following attributes you specify (you must + specify exactly one of them):</p> + <ul> + <li><em>forward</em> - Use the value of this attribute as the + name of a global <code>ActionForward</code> to be looked + up, and use the module-relative or context-relative + URI found there.</li> + <li><em>href</em> - Use the value of this attribute unchanged. + </li> + <li><em>page</em> - Use the value of this attribute as an + module-relative URI, and generate a server-relative + URI by including the context path.</li> + </ul> + + <p>Normally, the redirect you specify with one of the + attributes described in the previous paragraph will be left + unchanged (other than URL rewriting if necessary). However, + there are two ways you can append one or more dynamically + defined query parameters to the hyperlink -- specify a single + parameter with the <code>paramId</code> attribute (and its + associated attributes to select the value), or specify the + <code>name</code> (and optional <code>property</code>) + attributes to select a <code>java.util.Map</code> bean that + contains one or more parameter ids and corresponding values. + </p> + + <p>To specify a single parameter, use the <code>paramId</code> + attribute to define the name of the request parameter to be + submitted. To specify the corresponding value, use one of the + following approaches:</p> + <ul> + <li><em>Specify only the <code>paramName</code> attribute</em> + - The named JSP bean (optionally scoped by the value of the + <code>paramScope</code> attribute) must identify a value + that can be converted to a String.</li> + <li><em>Specify both the <code>paramName</code> and + <code>paramProperty</code> attributes</em> - The specified + property getter method will be called on the JSP bean + identified by the <code>paramName</code> (and optional + <code>paramScope</code>) attributes, in order to select + a value that can be converted to a String.</li> + </ul> + + <p>If you prefer to specify a <code>java.util.Map</code> that + contains all of the request parameters to be added to the + hyperlink, use one of the following techniques:</p> + <ul> + <li><em>Specify only the <code>name</code> attribute</em> - + The named JSP bean (optionally scoped by the value of + the <code>scope</code> attribute) must identify a + <code>java.util.Map</code> containing the parameters.</li> + <li><em>Specify both <code>name</code> and + <code>property</code> attributes</em> - The specified + property getter method will be called on the bean + identified by the <code>name</code> (and optional + <code>scope</code>) attributes, in order to return the + <code>java.util.Map</code> containing the parameters.</li> + </ul> + + <p>As the <code>Map</code> is processed, the keys are assumed + to be the names of query parameters to be appended to the + hyperlink. The value associated with each key must be either + a String or a String array representing the parameter value(s). + If a String array is specified, more than one value for the + same query parameter name will be created.</p> + ]]> + </description> + <attribute> + <name>action</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Logical name of a global <code>Action</code> that + contains the actual content-relative URI of the destination + of this transfer. This hyperlink may be dynamically + modified by the inclusion of query parameters, as described + in the tag description. You <strong>must</strong> specify + exactly one of the <code>action</code> attribute, the + <code>forward</code> attribute, the + <code>href</code> attribute, + or the <code>page</code> attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>anchor</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Optional anchor tag ("#xxx") to be added to the generated + hyperlink. Specify this value <strong>without</strong> any + "#" character.</p> + ]]> + </description> + </attribute> + <attribute> + <name>forward</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>Logical name of a global <code>ActionForward</code> that + contains the actual content-relative URI of the destination + of this redirect. This URI may be dynamically + modified by the inclusion of query parameters, as described + in the tag description. You <strong>must</strong> specify + exactly one of the <code>forward</code> attribute, the + <code>href</code> attribute, the <code>linkName</code> + attribute, or the <code>page</code> attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>href</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The URL to which this redirect will transfer control. + This URL may be dynamically modified + by the inclusion of query parameters, as described in the + tag description. You <strong>must</strong> specify + exactly one of the <code>forward</code> attribute, the + <code>href</code> attribute, the <code>linkName</code> + attribute, or the <code>page</code> attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>name</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of a JSP bean that contains a <code>Map</code> + representing the query parameters (if <code>property</code> + is not specified), or a JSP bean whose property getter is + called to return a <code>Map</code> (if <code>property</code> + is specified).</p> + ]]> + </description> + </attribute> + <attribute> + <name>page</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The context-relative path (beginning with a "/" + character) to which this hyperlink will transfer control + if activated. This hyperlink may be dynamically modified + by the inclusion of query parameters, as described in the + tag description. You <strong>must</strong> specify exactly + one of the <code>forward</code> attribute, the + <code>href</code> attribute, the <code>linkName</code> + attribute, or the <code>page</code> attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>paramId</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of the request parameter that will be dynamically + added to the generated hyperlink. The corresponding value is + defined by the <code>paramName</code> and (optional) + <code>paramProperty</code> attributes, optionally scoped by + the <code>paramScope</code> attribute</p> + ]]> + </description> + </attribute> + <attribute> + <name>paramName</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of a JSP bean that is a String containing the + value for the request parameter named by <code>paramId</code> + (if <code>paramProperty</code> is not specified), or a JSP + bean whose property getter is called to return a String + (if <code>paramProperty</code> is specified). The JSP bean + is constrained to the bean scope specified by the + <code>paramScope</code> property, if it is specified.</p> + ]]> + </description> + </attribute> + <attribute> + <name>paramProperty</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of a property of the bean specified by the + <code>paramName</code> attribute, whose return value must + be a String containing the value of the request parameter + (named by the <code>paramId</code> attribute) that will be + dynamically added to this hyperlink.</p> + ]]> + </description> + </attribute> + <attribute> + <name>paramScope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The scope within which to search for the bean specified + by the <code>paramName</code> attribute. If not specified, + all scopes are searched.</p> + ]]> + </description> + </attribute> + <attribute> + <name>property</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The name of a property of the bean specified by the + <code>name</code> attribute, whose return value must be + a <code>java.util.Map</code> containing the query parameters + to be added to the hyperlink. You <strong>must</strong> + specify the <code>name</code> attribute if you specify + this attribute.</p> + ]]> + </description> + </attribute> + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <description> + <![CDATA[ + <p>The scope within which to search for the bean specified + by the <code>name</code> attribute. If not specified, all + scopes are searched.</p> + ]]> + </description> + </attribute> + <attribute> + <name>transaction</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <type>boolean</type> + <description> + <![CDATA[ + <p>Set to <code>true</code> if you want the current + transaction control token included in the generated + URL for this redirect.</p> + ]]> + </description> + </attribute> + <attribute> + <name>useLocalEncoding</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + <type>boolean</type> + <description> + <![CDATA[ + <p>If set to <code>true</code>, LocalCharacterEncoding will be + used, that is, the characterEncoding set to the HttpServletResponse, + as prefered character encoding rather than UTF-8, when + URLEncoding is done on parameters of the URL.</p> + ]]> + </description> + </attribute> + </tag> </taglib> -- cgit v1.1