私は次のようなバッキングBeanを持っています:
@Named
@RequestScoped
public class ClientNewBackingBean {
@Inject
private ClientFacade facade;
private Client client;
この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);
}
ボタンがクリックされるたびAdd Child
に、Beanが再作成され、ビューにはJohn Doeの子が1つだけ表示されます(Requestスコープであるため)。BeanスコープをSessionに変更する以外に、これを解決する別の方法はありますか?