如何将选定的列值传递给方法?

时间:2015-04-29 13:53:52

标签: jsf jsf-2.2

我需要你帮助传递选定的行列&#39; <p:dataTable>到方法的值。现在在我的代码中,我得到的值不正确,其中一些是空的,所以请你帮忙。

我的数据表代码是:

<p:dataTable id="PendingRequests" var="hr" value="#{hrd.pendingRequests}">
    <p:column headerText="Request Date">
        <h:outputText value="#{hr.requestDate}"/>
    </p:column>

    <p:column headerText="Request No.">
        <h:outputText value="#{hr.reqNo}"/>
    </p:column>

    <p:column headerText="Employee Code">
        <h:outputText value="#{hr.employeeCode}"/>
    </p:column>

    <p:column>
        <f:facet name="header">View</f:facet>

        <p:lightBox style="align:center;" iframe="true" width="1200px" height="600px">
            <h:outputLink value="#{hr.link}">
                <p:commandButton icon="ui-icon-search" actionListener="#{hrd.HRCESS}">
                    <f:setPropertyActionListener target="#{hrd.employeeCode}" value="#{hr.employeeCode}"/>
                    <f:setPropertyActionListener target="#{hrd.reqNo}" value="#{hr.reqNo}"/>
                </p:commandButton>
            </h:outputLink>
        </p:lightBox>
    </p:column>
</p:dataTable>

但是,如果我点击<p:commandButton>,我会检查employeeCodereqNo的打印值。在HRCESS()方法中,我会找到employeeCodereqNo。是错的。

这是我在bean中的代码:

@PostConstruct
public void init() {
    listPendingRequests = new ArrayList<PendingRequests>();

    try {
        //SQL Statement
        while (result.next()) {
            PendingRequests pendingList = new PendingRequests();
            requestDate = result.getString("ECW_REQ_DT");
            reqNo = result.getString("ECW_REQ_SEQ_NO");
            employeeCode = result.getString("ECW_EMP_CD");
            pendingList.setRequestDate(requestDate);
            pendingList.setReqNo(reqNo);
            pendingList.setEmployeeCode(employeeCode);
            listPendingRequests.add(pendingList);
        }
    } catch (Exception e) {
        System.err.print(e);
        e.printStackTrace();
    }
}

0 个答案:

没有答案