Apache Struts 2 Documentation > Home > FAQs > Why doesn't the if tag evaluate test="
Added by tm_jee, last edited by Ted Husted on Oct 17, 2006  (view change)

try either

<s:if test="%{#parameters.search[0] == 'something'}">
   ....
 </s:if>

or

<s:if test="#parameters.search[0] == 'something'">
   ....
 </s:if>

Why to use search [ 0 ]?

The reason is that #parameters would return a Map, the framework conveniently makes request parameters into a Map to make unit testing action easier and the framework also uses

request.getParameterMap();

which returns a Map where the key is the parameter (String) while the value is an array of the parameter value (Array of String), hence the need to use [ 0 ].