我想使用 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 是会话范围的,一切都可以正常工作。但是将它放在请求范围内更直观。单个搜索是用户发出的单个请求,与用户会话无关。在会话中也有它,强制开发人员从会话中清除/删除支持bean,以便显示新的搜索屏幕。
有没有更好的方法来做到这一点?将它放在会话范围内是否正确?