首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSP中的ContainsKey

JSP中的ContainsKey
EN

Stack Overflow用户
提问于 2012-11-01 23:20:30
回答 2查看 5.7K关注 0票数 0

我的jsp中有一个可用的地图userDetailsMap<String,List<String>>

eligibleUser,notEligibleUser,enrolledUser是关键。

我可以很容易地检查s:iterator标记中的键。

就像(这段代码正常工作):

代码语言:javascript
复制
<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.

代码语言:javascript
复制
<s:if test="%{#userDetailsMap['eligibleUser'] == null}">
//some code
</s:if>

2.

代码语言:javascript
复制
<s:if test="%{#userDetailsMap.containsKey('eligibleUser')}">
//some code
</s:if>

但这两种方法都不起作用。

请推荐我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-07 18:57:44

编辑:根据你的声明,你的迭代器工作,

这是工作的(测试的):

代码语言:javascript
复制
  <s:if test="context.userDetails.containsKey('eligibleUser')">
        //some code
  </s:if>

如果您的userDetail由操作直接通过getter公开,则使用

代码语言:javascript
复制
  <s:if test="userDetails.containsKey('eligibleUser')">
        //some code
  </s:if>

我假设UserDetails是包含经过身份验证的用户的“徽章”的bean,映射中的三个列表是按用户角色分组的用例。

在这种情况下,要打印基于经过身份验证的用户的用户角色的所有用例,甚至不知道角色的密钥,请使用:

代码语言:javascript
复制
    <s:iterator value="userDetailsMap">
        User Role: <s:property value="key" />
        <br/>
        <ul>
            <s:iterator value="value">
                <li>
                    Use Case: <s:property />
                </li>
            </s:iterator>               
        </ul>
    </s:iterator>
票数 0
EN

Stack Overflow用户

发布于 2012-11-02 15:23:43

您的第二种方法看起来很好。但是从最上面的代码来看,我想知道你真的想要这样吗?

代码语言:javascript
复制
 <s:if test="%{context.userDetails.containsKey('eligibleUser')}">
//some code
</s:if>

请注意,我删除了#符号,因为我不确定操作中的变量是否需要它。如果我错了,请纠正我。

一些参考资料。

http://commons.apache.org/ognl/language-guide.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13180169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档