【问题标题】:passing value of primefaces tabview activeIndex to a widget managed bean将 primefaces tabview activeIndex 的值传递给小部件托管 bean
【发布时间】:2018-03-11 00:33:27
【问题描述】:

我有一个使用菜单项的 tabMenu,每个菜单项都有一个参数“i”,该参数链接到 activeIndex 以指示单击选项卡时要加载的页面。

我面临的问题是我需要获取 i 的这个参数值来调用另一个正在执行操作/处理的小部件。有什么方法可以获取 i 的这个参数值并将其传递给我的小部件托管 bean(小部件包含一个命令按钮,该按钮应该调用小部件托管 bean 中的方法并根据选择的菜单进行一些处理)。

小部件与 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>

谁能指导我?提前致谢。

【问题讨论】:

    标签: jsf primefaces jsf-2 widget tabmenu


    【解决方案1】:

    好的,我找到了答案

    在 xhtml 中:

    <h:commandButton outcome="widget" action="#{bean.callWidgetMethod}" >
            <f:param name="i" value="#{param['i']}" />
    </h:commandButton>
    

    在托管 Bean 中:

    Map<String,String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
    
    String param = params.get("i");
    
    System.out.println("i = "+param);
    

    【讨论】:

      猜你喜欢
      • 2011-07-10
      • 2015-12-02
      • 2014-12-23
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      相关资源
      最近更新 更多