我有一張地圖userDetailsMap<String,List<String>>
可在我的jsp中使用。
和eligibleUser,notEligibleUser,enrolledUser
是關鍵。
我可以輕鬆地檢查s:iterator
標籤中的密鑰。JSP中的ContainsKey
贊(此代碼工作):
<s:iterator var="userDetailsMap" value="context.userDetails">
<s:if test="%{#userDetailsMap.key=='eligibleUser'}">
//some code
</s:if>
<s:if test="%{#userDetailsMap.key=='notEligibleUser'}">
//some code
</s:if>
<s:if test="%{#userDetailsMap.key=='enrolledUser'}">
//some code
</s:if>
</s:iterator>
但我怎麼檢查特定的鍵存在與否? 我用:
1.
<s:if test="%{#userDetailsMap['eligibleUser'] == null}">
//some code
</s:if>
2.
<s:if test="%{#userDetailsMap.containsKey('eligibleUser')}">
//some code
</s:if>
但他們都沒有工作。
請給我建議。
你的鑰匙是不正確的:'userDetailsMap'代替'eligibleUser'(或另一個鍵)。我不知道OGNL的語法,但是當我看到類似這樣的內容時,我立即認爲包含三個鍵的'Map'應該被包含三個列表的bean替換。 –
這裏我們有一張地圖而不是一把鑰匙。 –
您正在檢查'#userDetailsMap。['userDetailsMap']'是否爲空。這個不成立。它應該是#userDetailsMap。['eligibleUser']。地圖不包含自己作爲關鍵。 –