【发布时间】:2014-02-02 05:46:28
【问题描述】:
我每个人都在尝试使用复合组件制作递归菜单,但我不知道如何将 backingbean 传递给同一个复合组件,我的代码看起来像这样
<composite:interface>
<composite:attribute name="bean" required="true"/>
<composite:attribute name="node" required="true"/>
</composite:interface>
<cc:implementation>
<--some code here-->
<c:if test="#{not empty cc.attrs.bean.obtainsubmenu(cc.attrs.node)}">
<c:foreach items="cc.attrs.bean.obtainsubmenu(cc.attrs.node)" var="submenu">
<!--some other code here-->
<menu:recursivemenu
bean="#{cc.attrs.bean}"
node="#{submenu.idOpc}"
/>
</c:foreach>
</c:if>
</cc:implementation>
获取子菜单方法只返回一个对象列表,该方法看起来像这样
public List<myObject> obtainsubmenu(Long id){
return mymap.get(id); //where my maps is parametized this way Map<Long, List<MyObject>
}
对于我的菜单的第一级,它看起来工作得很好,问题是当它试图调用自己进行递归时,它没有按应有的方式传递对象引用,我得到了一个 stackoverflow 异常原因,因为地图为空
有没有办法做到这一点?
坦克寻求帮助!
【问题讨论】:
标签: java jsf-2 recursion components composite