Мне нужно вызвать статический метод класса org.hibernate.Hibernate. Как это сделать в элементе потока?
Spring Web Flow: как вызвать статический метод из ‹evaluate/›?
comment
Можно поподробнее?
- person Mohamed Saligh   schedule 23.11.2010
comment
@Mohamed Saligh: Подробнее - у меня есть объект Product со списком изображений, которые лениво инициализируются. В потоке (при входе в какое-то представление) мне нужно инициализировать изображения, вызвав статический метод org.hibernate.Hibernate.initialize(). Как это сделать ?
- person marioosh   schedule 23.11.2010
Ответы (2)
Вы можете использовать следующую конструкцию Spring EL для оценки статических методов:
<evaluate expression="T(org.hibernate.Hibernate).initialize(yourObject)"/>
См. соответствующую справочную часть Spring EL:
person
Denis Kniazhev
schedule
25.11.2010
spring-webflow 2 использует выражения OGNL. OGNL допускает статические ссылки на поля и методы. Чтобы использовать его, вы хотели бы использовать нотации '@'.
Сначала вы ссылаетесь на класс (с пакетом). Вы хотели бы поставить @ перед именем пакета и класса и @ перед вызовом метода. С спящим режимом это будет выглядеть так
<evaluate expression="@org.hibernate.Hibernate@initialize()"/>
person
John Vint
schedule
23.11.2010
Это не работает. Я получаю ошибку синтаксического анализа: org.springframework.expression.spel.SpelParseException: EL1041E:(pos 24): после синтаксического анализа действительного выражения в выражении все еще есть данные: 'bean_ref(@)'
- person marioosh; 24.11.2010