私は以下のマネージドBeanを持っています。しかし、同じ Bean にポストバックするたびに、つまり updateFileList を呼び出しています。FileDAO の新しいインスタンスを取得します。
どうすればこれを防ぐことができますか? マネージド Bean 内に DAO を配置することは安全ですか。
@ManagedBean(name = "ファイル")
@ViewScoped
public class FileController は Serializable を実装します {
private static final long serialVersionUID = 1L;
プライベート List<LoadFileLog> fileList = null;
プライベート日付 selectedDate;
FileDAO fileDAO;
public FileController() {
System.out.println(" In file Controller コンストラクター");
ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
ApplicationContext コンテキスト = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
fileDAO = (FileDAO) context.getBean("FileDAO");
}
public FileDAO getFileDAO() {
fileDAO を返します。
}
public void setFileDAO(FileDAO fileDAO) {
this.fileDAO = fileDAO;
}
public List<LoadFileLog> getFileList() {
fileList を返します。
}
公開日 getSelectedDate() {
selectedDate を返します。
}
public void setSelectedDate(選択した日付の日付) {
this.selectedDate = selectedDate;
}
public void updateFileList() {
SystemController systemControl = (SystemController) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("system");
リスト systemList = new ArrayList();
if (systemControl != null) {
systemControl.populateSelectedSystems();
systemList = systemControl.getSelectedSysIdList();
}
if (selectedDate != null) {
fileList = getFileDAO().getFiles(systemList, selectedDate);
}
}
}
ありがとう!