我正在检索2个值(用户ID和个人资料ID),并将它们设置在变量userId和profileId中,如下所示。
<s:set name="userId" value="#session.User.id"/>
<s:set name="profileId" value="%{#parameters['id']}"/>
<s:if test="%{#userId} != %{#profileId}" >
<a href="#" title="Follow" id="follow-btn">
<img src="theme/images/follow.png" alt="like" />
<span>Follow</span>
</a>
</s:if>
我已经通过使用
<s:property value="%{#userId}" />
和<s:property value="%{#profileId}" />
进行了测试,它们两个都可以显示该值。但是我只是不能在if标签中使用它。现在,无论那两个变量的值是多少,链接按钮将永远不会显示。我不确定if标记语句是否正确,但是我尝试了很多组合(使用
%{}
和' '
进行操作)我觉得它与数据类型有关,但是无论我做什么,比较表达式似乎都无法正常工作。
干杯〜
更新:
好的,我发现问题出在
#profileId
中。可能是因为该值来自#parameters['id']
,它返回一个String值。有什么办法可以将此值转换为int吗?我已经尝试过Integer.parseInt(#profileId)
,但这不起作用。 最佳答案
尝试使用此:
<s:if test="#userId != #profileId" >