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 a long). 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
or property 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
or property 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 to start), at
the end (if location is set to end), 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.

|