Передать значение dataTable строки в новый JSF с помощью управляемого компонента или?

Как передать значение в моей таблице данных на другую страницу 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 Заранее спасибо!


person Mr Kids    schedule 11.02.2014    source источник
comment
Вы имеете в виду, что хотите выбрать строку и отправить ее в компонент поддержки или полностью отправить значение на другую страницу?   -  person kolossus    schedule 12.02.2014


Ответы (1)


Я решил свой вопрос, добавив параметр в конце моего URL-адреса.

MenuMaint?parentNode=parentNode&node=selected

в управляемом компоненте MenuMaint я получу параметр, используя

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

это позволяет мне получить значение другим способом, чем f:param

person Mr Kids    schedule 14.02.2014