When testing for a single character, Struts2 requires a very specific format that is not required for strings longer than 1 character:
1 - Doesn't display anything
<s:property value="hasLoginAccess" /> <s:if test="hasLoginAccess == 'Y'"> ✓ </s:if>
2 - Displays checkmark
<s:if test='hasLoginAccess == "Y"'> ✓ </s:if>
While single quotes works comparing strings longer than 1 character, it does not work with 1 character strings. This is inconsistent behavior.
For example, this test code matches because the string is longer than 1 character:
<s:if test="clientUser.userName == 'wiley.coyote@acme.com'"> Matches </s:if>