gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 18:28:35 25 4
gpt4 key购买 nike

我对 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
}

在 Controller 级别:

HashMap<String, String> result = new HashMap<String, String>();
result.put("error", "0");
result.put("update", "0");
result.put("create", "0");
HashMap<String, String> progress = new HashMap<String, String>();
int number = 0;
while (rowIterator.hasNext())
{
progress= companyFacade.uploadSmelter(); // implemented in application level uploadSmelter method

if(progress.get("errorMsg")!=null){
result.put(Integer.toString(number),progress.get("errorMsg"));
}
number=number+1 ;
}

现在,如果我在 jsp 页面中打印它,我会得到

{3=Company: ABC COMPANY  for Metal: A Exists, update=0, 2=Company: ABC COMPANY TIN for Metal TIN Exists, 1=Company: ABC COMPANY G for Metal METAL_TANTALUM Exists, 0=Company: ABC COMPANY L for Metal METAL_TANTALUM Exists, error=4, fileName=data.1407219942830.xls, number=4, create=0}

现在我想在 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>

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

Learn more...

关于java - 如何在 JSTL IF 条件中添加 AND/OR 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25132680/

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