Struts2 - Control Tags


In this section we are going to discuss the various control tags ( The Control Tags are used for flow control such as if, else and iterate.)

'If' tag could be used by itself or with 'Else If' Tag and/or single/multiple 'Else' Tag. Create a JSP page IfControlTag.jsp.

Set a property 'technologyName' with a value 'Java' as
<s:set name="technologyName" value="%{'Java'}"/>


Among if, elseif and else tags only one tag evaluates at a time. Evaluation is based upon the conditions being processed. Evaluated conditions must be of Boolean type. This is illustrated in the following Jsp page.

[Note:If the condition in tag evaluates to 'true' then only this tag is evaluated and others are discarded. As illustrated in the example.
If the condition in tag evaluates to 'false' and tag evaluates to 'true' then the body of the tag is processed.
If the condition in tag and tags evaluates to 'false' then only the tag is processed. ]

IfControlTag.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
<html> <head>
<title>Struts 2 Control Tag Example</title> </head>
<body> <s:set name="technologyName" value="%{'Java'}"/>
<s:if test="%{#technologyName=='Java'}"> <div>
<s:property value="%{#technologyName}" /></div>
</s:if>
<s:elseif test="%{#technologyName=='Jav'}"> <div>
<s:property value="%{#technologyName}" /></div>
</s:elseif>
<s:else> <div>
Technology Value is not Java</div>
</s:else>
</body> 
</html>

struts.xml: Add the following xml snippet in the struts.xml file.

<action name="doIf" >
<result>/pages/genericTags/IfControlTag.jsp</result> </action>

index.jsp: Add the following jsp snippet in the index.jsp file.

<ul>
<li><a href="roseindia/doIf.action">IF Control Tag Example</a></li> </ul>

In the IfControlTag.jsp only tag evaluates to true

<s:if test="%{#technologyName=='Java'}"> <div><s:property value="%{#technologyName}" /></div> </s:if>


So we get the output equal to Java

1 comment: