Java 在JSTL中是否可以使用集合过滤器函数(高阶函数)返回新集合?
我有一个集合,有两种类型Child_a和Child_B,它们扩展了父类。 有没有一种方法可以使用JSTL来使用过滤器函数来获取新集合?i、 eJava 在JSTL中是否可以使用集合过滤器函数(高阶函数)返回新集合?,java,jsp,collections,filter,jstl,Java,Jsp,Collections,Filter,Jstl,我有一个集合,有两种类型Child_a和Child_B,它们扩展了父类。 有没有一种方法可以使用JSTL来使用过滤器函数来获取新集合?i、 e List<Parent> myList --filter (element.getClass() == 'Child_A') --> List<Parent> myListOfChild_A List<Parent> myList --filter (element.getClass() == 'Chil
List<Parent> myList --filter (element.getClass() == 'Child_A')
--> List<Parent> myListOfChild_A
List<Parent> myList --filter (element.getClass() == 'Child_B')
--> List<Parent> myListOfChild_B
List myList--filter(element.getClass()=='Child\u A')
-->列出myListOfChild_A
列表myList--筛选器(element.getClass()=='Child_B')
-->列出myListOfChild_B
通过这种方式,我可以遍历子列表,并对它们使用适当的测试
目前,我只是在使用测试,在迭代整个列表时进行类型检查,但它并没有提供我想要的功能,即
<c:forEach var="item" items="${myList}">
<c:set var="item" value="${item}" scope="request"/>
<c:if test="${item.getClass().simpleName == 'Child_A'}">
<jsp:include page="child_A.jsp"/>
</c:if>
</c:forEach>
<%--I can't tell if there are any Child_A objects in my collection beforehand--%>
为什么不在控制器中准备这两个列表呢?在控制器中,您可以使用Java的全部功能来做您想做的事情。@JBNizet此集合嵌入在大约7个父对象和集合中……这是您应该解决的主要问题。确保控制器允许视图以简单的方式完成其工作。在模型中添加所需的方法:包含此混合集合的对象可以简单地提供getAChildren()
和getBChildren()
方法来帮助查看。抱歉,我忘了提到这是一个递归结构,其中每个父级都有父级列表。除了将其分离到控制器并尝试在控制器中处理外,可能没有其他方法可以执行此操作,但这会使耦合回嵌套对象变得困难,而JSTL允许我在上下文中处理集合。声明原因:。这是不必要的。