I am new to java. I tried to search around but did not find anything similar to my question.
I have list items in menu (<ul>
-s and <li>
-s) I want to add the active
class in <li>
tag depending on the action's name to make the specific menu item active.
For this I have used this piece of code
${request.context['struts.actionMapping'].name}
This piece of code is working fine on all pages except on page were action name is ""
i.e empty string. The empty string check or null check is not working where action name is just ""
<s:set var="action">${request.context['struts.actionMapping'].name}</s:set>
<ul class="nav navbar-nav navbar-right">
<li class="<s:if test="%{#action == ''}">active</s:if>">
<s:a href="/crudoperation">Dashboard</s:a>
</li>
<li class="<s:if test="%{#action == 'add'}">active</s:if>">
<s:url var="addUrl" action="add"/>
<s:a href="%{addUrl}">Add Student Profile</s:a>
</li>
<li class="<s:if test="%{#action == 'edit'}">active</s:if>">
<s:url var="editUrl" action="edit"/>
<s:a href="%{editUrl}">Edit Profile</s:a>
</li>
<li class="<s:if test="%{#action == 'view'}">active</s:if>">
<s:url var="viewUrl" action="view"/>
<s:a href="%{viewUrl}">View Profile</s:a>
</li>
</ul>
Here is my struts.xml
<struts>
<constant name="struts.ui.theme" value="simple" />
<package name="default" extends="struts-default" namespace="/">
<result-types>
<result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<action name="" class="com.javaguy.struts2.IndexAction">
<result name="master" type="tiles">master</result>
</action>
<action name="add" class="com.javaguy.struts2.AddAction">
<result name="add" type="tiles">add</result>
</action>
<action name="edit" class="com.javaguy.struts2.EditAction">
<result name="edit" type="tiles">edit</result>
</action>
<action name="view" class="com.javaguy.struts2.ViewAction">
<result name="view" type="tiles">view</result>
</action>
</package>
</struts>