我一直在使用这个动态列表组件:
How to implement a dynamic list with a JSF 2.0 Composite Component?
我想做的其中一件事是缓存“list”的原始值,以便当用户在此列表中添加或删除某些内容时...我知道添加/删除了哪些内容以便我可以与他们做一些不同的事情。例如,“已删除”项目只会有一个删除线。或者,“添加”项目将具有不同的背景,以显示它最近被添加。
我现在似乎唯一可行的方法是让组件本身采用3个不同的列表
<mycomp:dynamicList list="#{bean.list}" addList="#{bean.addList}"
deleteList="#{bean.deleteList}"/>
这似乎过于繁琐。只有网页/组件需要知道这三个列表中的差异...一旦表单实际提交,支持bean只需要知道“列表”的新值。所以,理想情况下,我只想使用:
<mycomp:dynamicList list="#{bean.list}"/>
答案 0 :(得分:2)
使用继承的getStateHelper()
方法可用的JSF视图状态。这基本上就像JSF视图范围一样。
确保您不在JSF视图状态中存储/复制/复制整个模型(列表),而只存储已添加/删除项目的索引。