比较grailsgsp中的字符串

比较grailsgsp中的字符串,grails,spring-security,grails-3.0,Grails,Spring Security,Grails 3.0,我被这个问题难住了。如果某个字符串等于登录的用户名,我将尝试显示一个类。然而,它似乎从来没有被评估为真的。 这是普惠制的代码 <g:if test="${it.from.username == sec.loggedInUserInfo(field: 'username')}"> <div class="direct-chat-msg right"> </g:if> <g:else> <div class="direct-chat-

我被这个问题难住了。如果某个字符串等于登录的用户名,我将尝试显示一个类。然而,它似乎从来没有被评估为真的。 这是普惠制的代码

<g:if test="${it.from.username == sec.loggedInUserInfo(field: 'username')}">
   <div class="direct-chat-msg right">
</g:if>
<g:else>
   <div class="direct-chat-msg">
</g:else>

我也尝试过使用这种方法

<div class="direct-chat-msg ${(it.from.username == sec.loggedInUserInfo(field: 'username')) ? 'right' : ''}">

然而,我所做的任何事情都不能让“正确”的班级出现在div中。 为了更好地衡量,我在gsp的隐藏字段中打印了这两个类的值

<input type="hidden" value="${it.from.username}"/>
<input type="hidden" value="${sec.loggedInUserInfo(field: 'username')}"/>

这些值是完全相同的

<input type="hidden" value="u***@gmail.com">
<input type="hidden" value="u***@gmail.com">

我尝试了几种字符串比较组合
.equals()
,在两者上调用
.toString()
,同时尝试将
作为字符串使用。然而,一切似乎都不起作用。
问题可能是什么


我试着从控制器传递模型中登录的用户对象,只需调用
loggedInUser.username
,就可以了。所以我现在的问题是,spring security返回的是什么类型的对象?

第二节loggedInUserInfo(字段:'username')}
的结果是一个HTML编码的字符串。Spring security在返回
'username'
值之前调用
encodeAsHTML()
。从视觉上看,它们看起来一样,但它们是相等的吗?显然不是