Jsp 正确语法以比较JSTL中的值<;c:如果测试=${values.type}==';对象'&引用&燃气轮机;

Jsp 正确语法以比较JSTL中的值<;c:如果测试=${values.type}==';对象'&引用&燃气轮机;,jsp,if-statement,jstl,el,Jsp,If Statement,Jstl,El,我试图用JSTL执行一个if语句 下面是我的代码(变量值是包含用户定义对象的ArrayList,类型是该对象的私有属性,使用公共getter/setter方法): test属性中零件的正确语法是什么。这些文件对那部分没什么帮助 谢谢。比较需要在EL${…}内部进行全面评估,而不是外部 <c:if test="${values.type eq 'object'}"> 另见: 顺便说一句,与具体问题无关,如果我猜你的意图是正确的,你也可以打电话,然后,而不是添加一个自定义g

我试图用JSTL执行一个
if
语句

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


test
属性中零件的正确语法是什么。这些文件对那部分没什么帮助


谢谢。

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

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

顺便说一句,与具体问题无关,如果我猜你的意图是正确的,你也可以打电话,然后,而不是添加一个自定义getter

<c:forEach items="${list}" var="value">
    <c:if test="${value['class'].simpleName eq 'Object'}">
        <!-- code here -->
    </c:if>
</c:forEeach>

另见:

谢谢,我试过了。当我需要它的时候,它似乎并没有解决错误。这可能是我在某个地方的错误,如果我找到了它并且它是相关的,我会在这里发布解决方案。
getType()
必须返回一个
字符串才能让它工作。另外,它是区分大小写的。这就是我在第二个示例中使用
对象
(大写)的原因。打印
${values.type}
plain以确保无误。我检查了所有内容两次、三次等,所有内容看起来都很好。问题是无法获取值。。。我已经检查过了,这部分正在工作,问题是如果type=='number'。。。我会继续寻找线索。谢谢,一切都解决了:)这是一个漫长的过程,没有一个与问题真正相关,只是常识,所以我不会解释。
<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'}" />
<c:forEach items="${list}" var="value">
    <c:if test="${value['class'].simpleName eq 'Object'}">
        <!-- code here -->
    </c:if>
</c:forEeach>