代码之家  ›  专栏  ›  技术社区  ›  Dewfy

未创建struts 2 bean

  •  0
  • Dewfy  · 技术社区  · 14 年前

    首先是我问题的一些先决条件,我使用struts2+tiles2+toplink。根本没有春天。

    最简单的方案是在页面上显示实体列表。为了优化解析JPA的EntityManager,我想创建一个帮助器(JPareSourceBean),它实现实体管理器的延迟加载。为此,我将使用struts2的bean声明:

    <bean  name="myfactory" class="my.model.JPAResourceBean" 
           scope="session" optional="false"/>
    

    为什么bean既没有在会话中实例化?(我正在使用s:property进行调试)

    ...
    <s:property value="#session.myfactory" default="buka.1"/>
    ...
    

    也不在纯bean列表中:

    ...
    <s:property value="#myfactory" default="buka.2"/>
    ...
    

    可能是问题的第二部分——如何从Java代码中解析这个bean?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Dewfy    14 年前

    我找到了解决办法。

    问题在于struts使用lazy load(按需解析)方法来实例化bean,因此当我通过以下语法访问jparesourcebean时,成功地解析了它:

    ActionContext.getContext().getContainer().getInstance(JPAResourceBean.class);