【问题标题】:Spring Web Flow: How to call static method from <evaluate />?Spring Web Flow:如何从 <evaluate /> 调用静态方法?
【发布时间】:2011-05-14 09:20:16
【问题描述】:

我需要调用org.hibernate.Hibernate 类的静态方法。 如何在流元素中做到这一点?

【问题讨论】:

  • 你能详细说明一下吗?
  • @Mohamed Saligh:更多细节 - 我有带有图像列表的 Product 实体,它们是惰性初始化的。在一个流程中(在某些视图上)我需要通过调用 org.hibernate.Hibernate.initialize() 静态方法来初始化图像。该怎么做?

标签: java spring-webflow spring-webflow-2


【解决方案1】:

您可以使用以下 Spring EL 构造来评估静态方法:

<evaluate expression="T(org.hibernate.Hibernate).initialize(yourObject)"/>

查看相应的 Spring EL 参考部分:

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/expressions.html#expressions-types

【讨论】:

    【解决方案2】:

    spring-webflow 2 使用 OGNL 表达式。 OGNL 允许静态引用字段和方法。要使用它,您需要使用“@”符号。

    首先你引用类(带有包)。您可能希望在包名和类名之前放置一个@,在方法调用之前放置一个@。使用休眠它看起来像

    <evaluate expression="@org.hibernate.Hibernate@initialize()"/>
    

    【讨论】:

    • 它不起作用。我收到解析错误:org.springframework.expression.spel.SpelParseException: EL1041E:(pos 24): 解析有效表达式后,表达式中还有更多数据:'bean_ref(@)'
    猜你喜欢
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多