我有一个支持bean如下:
@Named
@RequestScoped
public class ClientNewBackingBean {
@Inject
private ClientFacade facade;
private Client client;
Run Code Online (Sandbox Code Playgroud)
本Client类有一个List<Child> childrenList属性,等等.我能够创建一个新的Client设置时childrenList用new ArrayList().
在视图中,我有一个输入文本字段和一个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);
}
Run Code Online (Sandbox Code Playgroud)
每次Add Child单击按钮时,都会重新创建bean,并且视图只显示一个John Doe子项(由于它是Request stroped,我相信).除了将bean范围更改为Session之外,还有其他方法可以解决这个问题吗?