我正在检索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" >

09-13 04:56