比较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()
。从视觉上看,它们看起来一样,但它们是相等的吗?显然不是