我正在尝试为 Spring/facelets 应用程序创建多选项卡(JavaScript 选项卡)界面,并且我有 sc 窗口管理器,其中包含窗口(选项卡)数组。每个窗口(选项卡)都包含 Spring bean(会话范围),它接收(作为注入)其他 Spring bean,例如用于业务服务、DAO bean 等。我将 Primefaces p:tabView 用于 facelets 部分。
当用户创建新选项卡时,应创建新的 Spring bean(作为窗口/选项卡的一部分)并将其添加到窗口管理器 bean(WindowManager.addWindow(...) 具有从 p:commandButton 收集的方法,并且创建窗口/选项卡及其会话)。问题是 - 如何创建这个 bean 并初始化它(使用注入的 bean)?一种解决方案可能是调用 ctx.getBean("beanName"),但我不敢使用它,因为它有名称,而且这个名称似乎是唯一的。
也许 Spring bean 的编程创建不是好的设计(它们应该是自动创建的,但是当它们处理 Web 请求时会创建 Web 服务器/Spring 上下文),但在我的情况下似乎是必要的。