中的值的正确语法-6ren"> 中的值的正确语法-这个问题在这里已经有了答案: How to compare two object variables in EL expression language? (2 个回答) 5年前关闭。 我有一个 if-6ren">
gpt4 book ai didi

jsp - 比较 JSTL 中的值的正确语法

转载 作者:行者123 更新时间:2023-12-03 13:43:28 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to compare two object variables in EL expression language?

(2 个回答)


5年前关闭。




我有一个 if我试图用 JSTL 执行的声明。

我的代码如下(变量值是一个包含用户定义对象的 ArrayList,类型是该对象的私有(private)属性,具有公共(public) getter/setter 方法):

<c:forEach items="${list}" var="values">
<c:if test="${values.type}=='object'">
<!-- code here -->
</c:if>
</c:forEeach>
test 中部分的正确语法是什么?属性。文档对这部分没有真正的帮助 http://download.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/index.html

谢谢。

最佳答案

比较需要在 EL ${ ... } 内部进行全面评估,不在外面。

<c:if test="${values.type eq 'object'}">

至于文档,那些 ${}事情不是 JSTL,而是 EL(表达语言),它本身就是一个完整的主题。 JSTL(与其他所有 JSP 标签库一样)只是在使用它。您可以找到更多 EL 示例 here .
<c:if test="#{bean.booleanValue}" />
<c:if test="#{bean.intValue gt 10}" />
<c:if test="#{bean.objectValue eq null}" />
<c:if test="#{bean.stringValue ne 'someValue'}" />
<c:if test="#{not empty bean.collectionValue}" />
<c:if test="#{not bean.booleanValue and bean.intValue ne 0}" />
<c:if test="#{bean.enumValue eq 'ONE' or bean.enumValue eq 'TWO'}" />

也可以看看:
  • Our EL wiki page


  • 顺便说一句,与具体问题无关,如果我猜你的意图是正确的,你也可以直接调用 Object#getClass() 然后 Class#getSimpleName() 而不是添加自定义 getter。
    <c:forEach items="${list}" var="value">
    <c:if test="${value['class'].simpleName eq 'Object'}">
    <!-- code here -->
    </c:if>
    </c:forEeach>

    也可以看看:
  • instanceof check in EL expression language
  • 关于jsp - 比较 JSTL <c :if test ="${values.type}==' object'"> 中的值的正确语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4706754/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com