【问题标题】:Pass dataTable value of the row to new JSF using managed bean or?使用托管 bean 将行的 dataTable 值传递给新的 JSF 还是?
【发布时间】:2014-02-11 07:40:05
【问题描述】:

如何将 dataTable 中的值传递到另一个 jsf 页面?我设法通过使用 f:param 传递值,但我不知道如何获取 dataTable 中的数据并传递值。

<p:outputPanel id="panelSysMenuList">
    <p:dataTable id="dtSysMenu" paginator="true" paginatorPosition="bottom" paginatorAlwaysVisible="true"
                 var="menu" styleClass="panel-list"  filteredValue="#{menuController.filteredList}"
                 value="#{menuController.resultList}" emptyMessage="#{msg.noRecordsFound}"
                 rows="#{menuController.datatableMaxResult}" selection="#{menuController.selectMenu}"
                 widgetVar="widVarTable" rowKey="#{menu}" selectionMode="single"> 
        <p:column sortBy="#{menu.admenuPK.parentNode}" >
            #{menu.admenuPK.parentNode}
        </p:column>
        <p:column  sortBy="#{menu.admenuPK.node}" >
            #{menu.admenuPK.node}
        </p:column>
        <p:column sortBy="#{menu.nodeDesc}" >
            #{menu.nodeDesc}
        </p:column>
        <p:column sortBy="#{menu.className}" >
            #{menu.className}
        </p:column>
        <p:column  sortBy="#{menu.nodeRemark}" >
            #{menu.nodeRemark}
        </p:column>
    </p:dataTable>
</p:outputPanel>

<p:button id="btnAdd2" value="#{msg.sysMenuAdd}"   icon="ui-icon-plus" styleClass="action-buttons"  outcome="MenuMaint">
    <f:param name="parentNode" value="#{menuController.parentNode}" />
    <f:param name="node" value="#{menuController.selectMenu}" />
</p:button>

我的菜单维护

<f:metadata>
    <f:viewParam name="parentNode" value="#{menuMaintController.parentNode}" />
    <f:viewParam name="node" value="#{menuMaintController.node}" />
</f:metadata>

或者那是我能做到的吗? 顺便说一句,我正在使用 ViewScoped 提前致谢!

【问题讨论】:

  • 您的意思是要选择一行并将其发送到支持 bean 还是将值完全发送到另一个页面?

标签: jsf-2 primefaces datatable managed-bean view-scope


【解决方案1】:

我通过在 URL 末尾添加参数解决了我的问题

MenuMaint?parentNode=parentNode&node=selected

在 MenuMaint 的托管 bean 中,我将使用获取参数

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("parentNode")

这使我能够以不同于f:param 的方式获得价值

【讨论】:

    猜你喜欢
    • 2015-12-02
    • 2014-12-23
    • 1970-01-01
    • 2011-11-23
    • 2017-02-07
    • 1970-01-01
    相关资源
    最近更新 更多