【发布时间】:2013-01-04 14:21:21
【问题描述】:
我有一个如下的支持 bean:
@Named
@RequestScoped
public class ClientNewBackingBean {
@Inject
private ClientFacade facade;
private Client client;
Client 类具有 List<Child> childrenList 属性等。当使用new ArrayList() 设置childrenList 时,我可以创建一个新的Client。
在视图中,我有一个输入文本字段和一个Add Child 按钮。该按钮的属性actionListener=#{clientNewBackingBean.addChild()} 实现为:
public void addChild() {
if(client.getChildrenList() == null) {
client.getChildrenList(new ArrayList());
}
Child c = new Child("John Doe");
client.getChildrenList().add(c);
}
每次单击 Add Child 按钮时,都会重新创建 bean,并且视图只显示一个 John Doe 孩子(我相信,由于它是 Request 范围的)。除了将bean范围更改为Session之外,还有其他方法可以解决这个问题吗?
【问题讨论】: