我有以下托管 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); } } }
谢谢!