Передача значения tabface activeIndex в управляемый компонент виджета
У меня есть tabMenu, использующее пункты меню, каждый из пунктов меню имеет параметр "i", который связан с activeIndex, чтобы указать, какую страницу загружать при нажатии на вкладку.
Проблема, с которой я столкнулся, заключается в том, что мне нужно получить значение этого параметра i для вызова другого виджета, который выполняет действие / обработку. Можно ли как-нибудь получить значение этого параметра i и передать его в управляемый компонент виджета (виджет содержит командную кнопку, которая должна вызывать метод в управляемом компоненте виджета и выполнять некоторую обработку в зависимости от выбранного меню).
Виджет работает из tabMenu, но все еще находится на той же странице, что и меню вкладок. Есть ли способ сделать это?
TabMenu выглядит примерно так:
<p:tabMenu activeIndex="#{param.i}">
<p:menuitem value="AAA" outcome="/ABC/DEF/123.xhtml">
<f:param name="i" value="0" />
</p:menuitem>... continued similar menuitem for 3 times with values for i 0-3
</p:tabMenu>
Мой виджет содержит командную кнопку, которая выглядит следующим образом:
<h:commandButton outcome="widget" action="#{mbean.callWidgetMethod}" >
</h:commandButton>
Может кто-нибудь, пожалуйста, направлять меня? Заранее спасибо.
1 ответ
Хорошо, я нашел ответ
В xhtml:
<h:commandButton outcome="widget" action="#{bean.callWidgetMethod}" >
<f:param name="i" value="#{param['i']}" />
</h:commandButton>
В управляемом бобе:
Map<String,String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
String param = params.get("i");
System.out.println("i = "+param);