【问题标题】:ManagedBeans for different components in JSFJSF 中不同组件的 ManagedBeans
【发布时间】:2013-02-22 20:42:27
【问题描述】:

我有一个关于在应用程序中使用 ManagedBeans 的问题。

我有一个页面,其中包含不同的 JSP 组件,如 autoComplete、selectOneMenu、textarea、inputFields、datatable 等。

我为这些组件使用单独的服务类和 DAO,因为这些组件的实体类不同。

对于 ManagedBeans,我应该为一个页面的所有组件使用一个 ManagedBean,还是为不同的组件使用不同的 ManagedBean?

【问题讨论】:

    标签: java spring jsf jsf-2


    【解决方案1】:

    由于单个页面上的组件很可能是高度耦合的,因此使用多个 managedbean 并没有真正的好处。但是,如果 bean 的一部分在多个页面中高度重复,您可能会考虑将其重构为 Composite Component。

    【讨论】:

    • 如果我将一个 ManagedBean 用于多个组件,或者如果我将多个 ManagedBean 用于多个组件,会有任何性能问题吗?最佳做法是什么?
    • 除非您在创建 ManagedBean 期间执行高成本操作(即在使用 @PostConstruct 注释的方法中),否则使用多个 bean 不应该有任何与性能相关的问题,但是就像我说的这样做也没有好处(据我所知)。
    • 我在 ManagedBeans 中确实有 @PostConstruct,所以最好有一个或?
    • 这只是一个在创建 bean 时执行一些代码的钩子,我的意思是,如果您在页面中使用多个 bean,而在呈现页面时,所有这些 PostConstructs 将执行并且如果你在那里做一些繁重的工作,那可能会导致一些性能问题。
    • 您也可以说您可以在超过 1 个页面中使用 @SessionScoped 和 @ApplicationScoped 托管 bean 来实现不同的功能,例如用户偏好或应用程序语言(会话数据)或下拉列表数据(应用程序范围) .
    猜你喜欢
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多