Struts Logic Tags: An Introduction
Struts logic tags are conditional tags that replaces scriptlets in the jsp files.
This tag library contains tags that do the
following things :
conditional generation of the output text,
generate iterations to output the text,
application flow management,
matching strings and substrings...
Logic tags available in the Struts Framework
Tag Name | Description |
empty | If the requested variable is either null or an empty string then the nested body content of this tag is evaluated |
equal | If the requested variable is equal to the specified value then the nested body content of this tag is evaluated |
forward | It forwards the control to the page specified by the specified ActionForward entry. |
greaterEqual | If the value of the requested variable is greater than or equal to the specified value then the nested body content of this tag is evaluated |
greaterThan | If the value of the requested variable is greater than the specified value then the nested body content of this tag is evaluated |
iterate | It repeats the nested body content of this tag over a specified collection. |
lessEqual | If the value of the requested variable is less than or equal to the specified value then the nested body content of this tag is evaluated |
lessThan | If the value of the requested variable is less than the specified value then the nested body content of this tag is evaluated |
match | Evaluates the nested body content of this tag if the specified value is an appropriate substring of the requested variable. |
messagesNotPresent | If the specified message is not present in the request then it generates the nested body content of this tag . |
messagesPresent | If the specified message is present in this request then it generates the nested body content of this tag . |
notEmpty | 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) then the nested body content of this tag is evaluated |
notEqual | If the requested variable is not equal to the specified value then the nested body content of this tag is evaluated |
notMatch | If the specified value is not an appropriate substring of the requested variable then the nested body content of this tag is evaluated |
notPresent | If the specified value is not present in the request then it generates the nested body content of this tag . |
present | If the specified value is present in the request then it generates the nested body content of this tag |
redirect | It renders an HTTP Redirect request. |
Struts logic tags uses equal, greaterEqual, greaterThan, lessEqual, lessThan, notEqual tags to compare the values. There are rules that must be followed :
- Initially the specified variable needed to
be compared is examined (whether it can be converted to a
double
or to along
). Then a numeric (either floating point or integer) type comparison is done. If numeric conversion fails than a String comparison is performed. - The variable to be compared is retrieved
from the request attribute(s) that may be a
cookie
,header
,name
,parameter
orproperty
available to the specified tag. This variable is then converted to the appropriate type needed for the comparison.. - If the variable or property to be compared returns null, it is converted into a zero-length string before the comparison occurs.
- If the comparison logic returns a
true
value then only the specific comparison is performed and subsequently the nested body content is evaluated .
Struts logic tags can also do the substring matching
using the tags (match
, notMatch
). There are
rules that must be followed :
- The variable to be compared is retrieved
from the request attribute(s) that may be a
cookie
,header
,name
,parameter
orproperty
available on this tag. Then this variable is converted to a String, if necessary. - If the retrieval of the variable fails or it contains a null value then a request time exception is thrown.
- The existence of the variable as a substring
is examined at the position specified by the
location
attribute Location can be specified at the beginning (if location is set tostart
), at the end (if location is set toend
), or anywhere (if location is not specified).
A JspException
is thrown at runtime if any tag is utilized incorrectly or any invalid combination of tag
attributes are used. To
process the actual exception that caused the problem, a request attribute under key org.apache.struts.action.EXCEPTION
is passed to the error
page.
In the subsequent section we will show you the examples of these tags.