Spring Web Flow — p:menuitem action, создание потока
Проблема: не работает action и actionListener в p:menuitem (primefaces).
Часто возникает задача вызывать какой-либо transition в определенном потоке. Проблема заключается в том, что по умолчанию ни action, ни actionListener или что-то подобное не работают из конструкции
1 2 3 4 5 |
<p:commandButton id="exitButton" icon="ui-icon ui-icon-key"/> <p:menu overlay="true" trigger="exitButton" my="left top" at="left bottom"> <p:menuitem value="${msg.subMenuExit}" action="exit" /> </p:menu> </p:commandButton |
Чтобы создать новый поток или вызвать transition on=»menuitem action» нужно выставить параметр ajax=»false»! Без этого action в primfaces menuitem работать не будет.
Вот такой код отработает корректно
view.xhtml
1 2 3 4 5 6 |
<p:commandButton id="exitButton" icon="ui-icon ui-icon-key"/> <p:menu overlay="true" trigger="exitButton" my="left top" at="left bottom"> <p:menuitem value="${msg.subMenuExit}" action="exit" ajax="false" /> </p:menu> </p:commandButton |
flow.xml
1 2 3 4 5 |
<view-state id="main" view="view.xhtml"> <transition on="exit" to="logout"/> </view-state> <end-state id="logout"/> |
На официальном форуме primefaces предлагают использовать конструкцию с url, но настроить правильные параметры, чтобы поток успешно выполнил transtion on=»someAction» намного сложнее. Для меня осталось загадкой почему админы PF не пишут про вышепреведенную констркцию.
2