我有以下托管 bean。但是每次我在调用updateFileList 时回帖到同一个bean 时。我得到了一个新的 FileDAO 实例。
我怎样才能防止这种情况?在托管 bean 中拥有 DAO 是否安全,如果不是,我可以进行哪些更改来改进它。
@ManagedBean(name = "文件")
@ViewScoped
公共类 FileController 实现 Serializable {
私有静态最终长序列版本UID = 1L;
私有列表<LoadFileLog> fileList = null;
私人日期 selectedDate;
FileDAO 文件DAO;
公共文件控制器(){
System.out.println("文件控制器构造函数");
ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
ApplicationContext 上下文 = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
fileDAO = (FileDAO) context.getBean("FileDAO");
}
公共 FileDAO getFileDAO() {
返回文件DAO;
}
公共无效 setFileDAO(FileDAO 文件DAO){
this.fileDAO = fileDAO;
}
公共列表<LoadFileLog> getFileList() {
返回文件列表;
}
公共日期 getSelectedDate() {
返回选定日期;
}
公共无效 setSelectedDate(日期选择日期){
this.selectedDate = selectedDate;
}
公共无效更新文件列表(){
SystemController systemControl = (SystemController) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("system");
列表 systemList = new ArrayList();
如果(系统控制!= null){
systemControl.populateSelectedSystems();
systemList = systemControl.getSelectedSysIdList();
}
if (selectedDate != null) {
fileList = getFileDAO().getFiles(systemList, selectedDate);
}
}
}
谢谢!