【发布时间】:2010-09-15 17:58:58
【问题描述】:
我想用 JSF 实现类似的东西。(搜索屏幕的一部分)
点击“+”按钮会动态添加越来越多的新行,点击“-”按钮会删除该行。问题在于将值(那些动态创建的行中的用户输入)绑定到支持模型。
我创建了一个会话范围的支持 bean。部分代码,
public class BackingBean{
//other code
private List<Criteria> searchFilters; // Each criteria is bound to a row
public void init(){
//init code
}
public void addEmptyCriteria(){
searchFilters.add(MyFactory.createNewCriteria());
}
}
+ 按钮的操作触发 addEmtpyCriteria 方法并重新渲染(使用 a4j)整个部分(带有新行)。
这只是一个样板文件,只要 bean 是会话范围的,一切都会正常工作。但是将它放在请求范围内更直观。单个搜索是用户发出的单个请求,与用户会话无关。在会话中也有它,会强制开发人员从会话中清除/删除 backingbean,以便显示新的搜索屏幕。
有没有更好的方法来做到这一点?将它放在会话范围内是否正确?
【问题讨论】: