Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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中是否可以使用集合过滤器函数(高阶函数)返回新集合?_Java_Jsp_Collections_Filter_Jstl - Fatal编程技术网

Java 在JSTL中是否可以使用集合过滤器函数(高阶函数)返回新集合?

Java 在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

我有一个集合,有两种类型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() == '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允许我在上下文中处理集合。声明原因:。这是不必要的。