在JSTL中重复代码

时间:2014-05-06 21:45:43

标签: java spring jsp jstl

我需要帮助,如果满足条件,我需要再次使用JSTL代码,例如:

<c:forEach items="${arbol.subTree}" var="arbol"> 
name = <c:out value="${arbol.nombre}"/> 
<c:if test="${arbol.subTree!=null}"> 
/ / do the last foreach 
</ c: if> 
</ c: forEach> 

如果有人可以帮助我,如果你有疑问,我正在旅行,需要一棵树,每次你有一个可用的节点时,每个人都这样做。 由于树可能有数千个节点,因为我调用上面的代码而不必写几千次?

1 个答案:

答案 0 :(得分:1)

JSTL根本不打算做任何递归方法。如果您希望/需要显示树,那么最好使用JSON将树结构从Java传递到JavaScript,然后在JavaScript中评估JSON对象并应用您想要/需要的任何递归方法。

在Java中,将您的结构转换为JSON字符串。这可以使用杰克逊完成:

YourTree tree = ...
ObjectMapper mapper = new ObjectMapper();
request.setAttribute("tree", mapper.writeValueAsString(tree));

在JavaScript中,获取JSON字符串:

<script type="text/javascript">
    window.onload = function() {
        var tree = JSON.parse('${tree}');
        //do what you want/need with your tree structure...
    }
</script>