私の質問「Creating an “Edit my Item”-page in Java Server Faces with Facelets」に加えて、これが提供した問題をカバーしたいと思います。
commandButton を押すと、ID=100 が削除され、ページが更新されます。これは、メソッドを実行する前です。つまり、ボタンを押したときに ID がないことを意味します。
これをどのように解決しますか?
このマネージドBeanを持つことで
public class BeanWithId implements Serializable {
private String id;
private String info;
private void populateInfo() {
info = "Some info from data source for id=" + id;
}
public String getId() { return id; }
public void setId(String id) {
this.id = id;
populateInfo();
}
public String getInfo() { return info; }
public void setInfo(String info) { this.info = info; }
public String save() {
System.out.println("Saving changes to persistence store");
return null; // no navigation
}
}
そして追加
<p><h:commandButton action="#{beanWithId.save}" value="Save" /></p>
私のフェイスレットページへ。これで、faces-config.xml にも正しい情報があり、?ID=100 を使用してページにアクセスすると、正しいアイテムが返されます。