Java 在jsp页面中将对象列表过滤到servlet上下文中

Java 在jsp页面中将对象列表过滤到servlet上下文中,java,jsp,servlets,Java,Jsp,Servlets,我在应用程序上下文中有一个对象列表,我想过滤这个列表,以便只获得一个元素来显示jsp页面。我尝试使用流过滤函数过滤列表: <c:set var="itemDetalias" value="${applicationScope.productList.stream().filter(p -> p.getId() == item.getProductId()).collect(java.util.stream.Collectors.toList()).get(0)}" />

我在应用程序上下文中有一个对象列表,我想过滤这个列表,以便只获得一个元素来显示jsp页面。我尝试使用流过滤函数过滤列表:

<c:set var="itemDetalias" value="${applicationScope.productList.stream().filter(p -> p.getId() == item.getProductId()).collect(java.util.stream.Collectors.toList()).get(0)}" />

但我有一个错误消息:

${applicationScope.productList.stream().filter(ppp->ppp.getId()==item.getProductId()).collect(java.util.stream.Collectors.toList()).get(0)}

未找到方法:class org.apache.el.stream.stream.collect(null)


如何筛选列表?

我找到了解决方案。Tomcat有自己的功能,它有一些功能,如
过滤器
,但它没有
收集
功能。不要使用
collect
功能,而是使用
toList
功能

新线路应为:

<c:set var="itemDetalias" value="${applicationScope.productList.stream().filter(p -> p.getId() == item.getProductId()).toList().get(0)}" />


将该代码放入控制器servlet。并使用findFirst()/findAny()而不是收集到列表中。@JBNizet是否有任何方法可以使用jstl进行筛选?当然可以。但也可以用螺丝刀敲钉子。使用正确的工具进行作业。