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.

0 comments:

Post a Comment