Struts2:比较If变量中的2个变量不起作用
问题描述:
我正在检索2个值(用户ID和配置文件ID),并将它们设置在变量userId和profileId中,如下所示。Struts2:比较If变量中的2个变量不起作用
<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标签中工作。现在,无论这两个变量的值是什么,链接按钮都不会显示。
我不知道,如果,如果标签的语句是正确的,但是我已经尝试了很多组合的
我有一种感觉它有事情做与数据类型(与%{}
和' '
玩弄)但无论我做什么,比较表达式似乎并不奏效..
干杯〜
UPDATE: 还好我发现,这个问题是在#profileId
。可能是因为该值是从#parameters['id']
返回一个字符串值。有什么办法将此值转换为int?我试过Integer.parseInt(#profileId)
,但那不行。
答
尝试使用这样的:
<s:if test="#userId != #profileId" >
+0
仍然无法正常工作。 – 2012-07-26 05:41:02
尝试'
' – Jaiwo99 2012-07-26 06:53:06什么样的数据类型是'User.id',因为如果你从http请求中得到一个参数,它应该是'String',它们是否具有相同的类型? – Jaiwo99 2012-07-26 07:05:34
'
'不起作用。 User.id是整数数据类型,但正如您所提到的,从http请求中检索将把它转换为字符串。所以也许我应该首先将profileId转换为字符串? – 2012-07-26 07:54:33