2012-07-25 94 views
0

我正在檢索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),但那不行。

+0

嘗試'' – Jaiwo99 2012-07-26 06:53:06

+0

什麼樣的數據類型是'User.id',因爲如果你從http請求中得到一個參數,它應該是'String',它們是否具有相同的類型? – Jaiwo99 2012-07-26 07:05:34

+0

''不起作用。 User.id是整數數據類型,但正如您所提到的,從http請求中檢索將把它轉換爲字符串。所以也許我應該首先將profileId轉換爲字符串? – 2012-07-26 07:54:33

回答

1

嘗試使用這樣的:

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

仍然無法正常工作。 – 2012-07-26 05:41:02