Java Struts2:如果标记不工作,则比较中的2个变量

Java Struts2:如果标记不工作,则比较中的2个变量,java,struts2,Java,Struts2,我正在检索2个值(userId和profileId),并在变量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="Fol

我正在检索2个值(userId和profileId),并在变量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>

我已经使用
进行了测试,它们都能够显示值。但是,我就是不能让它在if标记中工作。现在,无论这2个变量的值是多少,链接按钮都不会显示

我不确定if-tag语句是否正确,但是我尝试了很多组合(使用
%{}
'

我有一种感觉,它与数据类型有关,但无论我做了什么,比较表达式似乎都不起作用

干杯~

更新: 好的,我发现问题出在
#profileId
中。可能是因为该值来自返回字符串值的
#parameters['id']
。有没有办法把这个值转换成int?我尝试了
Integer.parseInt(#profileId)
,但没有成功。

尝试使用以下方法:

<s:if test="#userId != #profileId" >


试试
User.id是什么类型的数据类型,因为如果您从http请求中获得一个参数,它应该是
String
,它们是否具有相同的类型?
不起作用。id是整数数据类型,但正如您所提到的,从http请求检索将把它转换为字符串。因此,也许我应该首先将profileId转换为字符串?试试
仍然不起作用。你知道有什么问题吗?