【发布时间】:2012-11-01 15:20:30
【问题描述】:
我的 jsp 中有一张地图 userDetailsMap<String,List<String>>。eligibleUser,notEligibleUser,enrolledUser 是关键。
我可以轻松检查 s:iterator 标签内的密钥。
赞(此代码有效):
<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的syntak,但是看到这样的东西,立马觉得这个包含三个key的Map<String, List>应该换成一个包含三个list的bean。 -
这里我们有一张地图而不是钥匙。
-
您正在检查
#userDetailsMap.['userDetailsMap']是否为空。这没有道理。它应该是#userDetailsMap.['eligibleUser']。地图不包含自己作为键。 -
对不起.. 已编辑。请对此进行调查。
-
根据mycodefixes.blogspot.fr/2010/11/…,
%{#userDetailsMap['eligibleUser'] == null}应该可以工作。删除左方括号前的点。