私はこれをJSF2.0で行っています。同じコントローラーでページの追加と表示を実装しました。同じコントローラーを使用するのがベストプラクティスかどうかわかりませんね。この例のように、すべての追加、編集、表示に1つのページを使用しますが、ページが異なります。したがって、ビューページから編集ページに移行するとき、値を保持したいのですが、できません。同じコントローラー内の異なるページ間で値を保持するにはどうすればよいですか?出力コンソールには、editの値がtrueからfalseに変更され、editLegendType関数でtrueに変更されます。
@ManagedBean
@ViewScoped
public class LegendController implements Serializable {
LegendDTO legendDTO = new LegendDTO();
String selectedLegend;
boolean edit;
public LegendController() {
Logger.getLogger(LegendController.class.getName()).warning("The size of list" + edit);
if (!edit) {
legendDTO.getList().add(new Legend());
Logger.getLogger(LegendController.class.getName()).warning("The size of list" + legendDTO.getList().size());
}
}
//All function from here is to legend edit
public String editLegendType(LegendDTO dto) {
edit = true;
legendDTO = dto;
Logger.getLogger(LegendController.class.getName()).warning("The size of list" + edit);
return "addLegend";//from view page to addPage for edit.
}
}