【问题标题】:How does Struts create an action bean?Struts 如何创建动作 bean?
【发布时间】:2014-09-15 07:31:45
【问题描述】:

我使用 Struts2.x,我知道 Struts 根据请求在动作中创建声明的 bean 对象,以便动作可用。我一直在研究以了解 Struts 在内部使用哪些拦截器/类来创建 bean 对象。我试图了解内部用于创建 bean 对象的逻辑。它是使用PropertyUtils 填充bean 的属性还是其他方式?任何阅读建议或指示都会有所帮助。

【问题讨论】:

    标签: java struts2 javabeans ognl struts2-interceptors


    【解决方案1】:

    Struts 内部使用ObjectFactory 来构建配置定义的所有对象。查看更多关于 ObjectFactory 文档或 The Struts 2 Request Flow 的信息。

    当你使用params 拦截器填充一些bean 时,默认情况下,如果对象不存在,它会在OGNL 的帮助下创建对象。它也是可配置的。

    PropertyUtils 不被 Struts2 核心使用,但如果插件需要 commons-beanutils 包,则可以使用它们。

    【讨论】:

    • 我看到ObjectFactory 有一个方法public Object buildBean(Class,Map),但这只是返回一个新的类实例。 ParametersInterceptor 表示它根据 action 的属性设置 action.setModelClass() 并将接受的参数推送到 valueStack,但我仍在搜索 Map 中的值设置到创建对象的位置。
    猜你喜欢
    • 2014-08-23
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    相关资源
    最近更新 更多