Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JSTL IF条件中添加AND/OR运算符_Java_Jsp_Jstl - Fatal编程技术网

Java 如何在JSTL IF条件中添加AND/OR运算符

Java 如何在JSTL IF条件中添加AND/OR运算符,java,jsp,jstl,Java,Jsp,Jstl,我对JSTL很陌生 现在我已经创建了一个HashMap并在jsp页面中呈现它 这就是我如何包装HashMap的 在应用程序级别: public HashMap<String, String> uploadSmelter(){ HashMap<String, String> progress = new HashMap<String, String>(); try { CompanyEntity instanceNew = (CompanyE

我对JSTL很陌生

现在我已经创建了一个HashMap并在jsp页面中呈现它

这就是我如何包装HashMap的

在应用程序级别:

public HashMap<String, String> uploadSmelter(){

HashMap<String, String> progress = new HashMap<String, String>();

try {
        CompanyEntity instanceNew = (CompanyEntity) sessionFactory.getCurrentSession()
                .createCriteria(CompanyEntity.class)
                .add(Restrictions.eq("name", smObj.getName()))
                .add(Restrictions.eq("metal",  MetalEnum.valueOf(metal))).uniqueResult();
        if (instanceNew != null){
            //logger.info();
            progress.put("error", Integer.toString(1));
            progress.put("errorMsg", "Company : " +smObj.getName() + " for Metal: " + metal + " exists." );

        }
     }
 return progress
}
现在,我想在jsp页面中运行一个foreach循环,该循环应该打印Hashmap中的过滤值

所以我在JSTL if语句中添加了这些条件。但它似乎不支持条件语句,我也没有得到任何输出

<c:forEach items="${result}" var="item">
  <c:if test="${item.key} !='update' && ${item.key} !='error' && ${item.key} !='create' && ${item.key} !='number' && ${item.key} !='fileName'}"  >                
     <div class="attributeField">Line Number <c:out value="${item.key}" /> &nbsp;<spring:message message="${item.value}"/></div> 
  </c:if>
</c:forEach>

行号

那么我犯了什么错误呢?提前谢谢你的帮助

只需使用单个
${…}
将所有条件作为
test
属性的值

示例代码:

<c:forEach items="${result}" var="item">
    <c:if
        test="${item.key !='update' && item.key !='error' && item.key !='create' && item.key !='number' && item.key !='fileName'}">
        ...
    </c:if>
</c:forEach>

...
&&
只能在
${…}
内部执行


只需使用单个
${…}
将所有条件作为
test
属性的值

示例代码:

<c:forEach items="${result}" var="item">
    <c:if
        test="${item.key !='update' && item.key !='error' && item.key !='create' && item.key !='number' && item.key !='fileName'}">
        ...
    </c:if>
</c:forEach>

...
&&
只能在
${…}
内部执行


我已经试过了,但是得到的错误是
javax.servlet.ServletException:javax.servlet.jsp.jspeException:Attribute value“Company:ABC Company for Metal:A Exists”既不是jsp EL表达式,也不可分配给与条件部分无关的结果类[org.springframework.context.MessageSourceResolvable]
。为了快速响应,请共享最少的可测试代码。你是如何填充地图的?我已经解释过了。有意义吗?问题出在
。没有关于
公司:ABC金属公司的消息:存在一个
键。更好地共享
消息。属性
。确切地说是@user3218114,我现在已经将其更改为“行号”,工作正常。我已经尝试过了,但得到了错误
javax.servlet.ServletException:javax.servlet.jsp.jspeException:Attribute value“Company:ABC Company for Metal:A Exists”既不是JSP EL表达式,也不可分配给与条件部分无关的结果类[org.springframework.context.MessageSourceResolvable]
。为了快速响应,请共享最少的可测试代码。你是如何填充地图的?我已经解释过了。有意义吗?问题出在
。没有关于
公司:ABC金属公司的消息:存在一个
键。更好的方法是共享
消息。属性
也一样。确切地说是@user3218114,我现在把它改成了'Line Number',工作正常。这是什么“{3=Company…}”业务?我已经在问题中解释过了。基本上,对于
“{3=Company…}”
,我试图用索引作为键保存错误消息。这是什么“{3=Company…}”业务?我现在已经在问题中解释过了。基本上,对于
“{3=Company…}”
,我试图用索引作为键保存错误消息。
<c:forEach items="${result}" var="item">
    <c:if
        test="${item.key !='update' && item.key !='error' && item.key !='create' && item.key !='number' && item.key !='fileName'}">
        ...
    </c:if>
</c:forEach>