JSF f: порядок выполнения события
Предположим, у меня есть несколько тегов f: event для обработки одного и того же вида события:
<f:event type="preRenderView" listener="#{myBean.action1()} />
<f:event type="preRenderView" listener="#{myBean.action2()} />
Гарантирован ли порядок исполнения?
Редактировать:
Чтобы выяснить, почему мне нужно, чтобы они выполнялись в определенном порядке, вот мой пример использования:
myBean # action1 на самом деле является сеттером
myBean # action2 - это метод, который работает с полем, установленным action1
На мой взгляд, заказ ненадежный, поэтому я просто ставлю их как EL expressions
внутри моего лица так:
<p:ouputPanel>
#{myBean.action1()}
#{myBean.action2()}
</p:ouputPanel>
1 ответ
Спецификация, кажется, явно не утверждает, что где-либо.
Application#publishEvent()
API упоминает, что они получены и обработаны как List
который по природе заказан. И реализации Mojarra, и MyFaces подтверждают это, сохраняя их в CopyOnWriteArrayList
а также ArrayList
соответственно.
Таким образом, логически на основе API и обеих реализаций они действительно выполняются по порядку, если добавляются к одному и тому же родительскому компоненту пользовательского интерфейса.