0

ボタンをクリックすると詳細を表示するために、primefaces ダイアログ モデルを使用していますが、ダイアログ ボックスで値を取得できません。

   <p:dataGrid id ="boardpanel" var="item" value="#{bLDashBoardAction.listBondLoc}" columns="#{message.no_of_columns}"  
    rows="20" paginator="true">  

    <p:column>  
        <p:panel header="Details" style="text-align:center">  
            <h:panelGrid columns="1" style="width:100%;">  


         <h:outputText value="#{item.rackTagCode}"  title="#{item.rackTagCode}" /> 

                <p:commandLink update=":frmDashBoard:blDetail" oncomplete="blDialog.show()" title="View Detail">  
                    <p:graphicImage value="/images/search.png"/>   
                    ***<f:setPropertyActionListener value="#{item}" 
                            target="#{bLDashBoardAction.rackTagCode}" />***  
                </p:commandLink>  
            </h:panelGrid>  
        </p:panel>  
    </p:column>  

</p:dataGrid>  

<p:dialog header="BL Detail" widgetVar="blDialog" modal="true">
  <p:outputPanel id="blDetail" style="text-align:center;" layout="block">
 <h:panelGrid  columns="2" cellpadding="2">
    <h:outputLabel for="blNo" value="BL " />
        ***<h:outputText id="blNo" value="#{item.rackTagCode}" />*** 

</h:panelGrid>

BLDashBoardAction クラスの getListBondLoc 関数から、rackTagCode のリストを取得しています。これは私の getListBondLoc 関数です:

private String  bondLocationId;
private String  serviceAreaId;
private String facilityId;
private String bondLocationCode;
private String awb;
private String  zoneId;
private String  sectorId;
private String rackTagCode;
private String blTagCode;
private String ipAddress;
private String  ptlStatusId;
private String errorCode;
private String processIndicator;
private String textMsg;
private String rackTagCodeSel;
private BondLocationEBean beanSel;

private List<BondLocationEBean> listBondLoc;

public String navigateList(){
    listBondLoc = bondLocBusServ.searchBondLocList();
    return "/jsp/dashboard/dashboard";
}

public void doSearch()
{

    listBondLoc = bondLocBusServ.searchBondLocList(sectorId, zoneId, facilityId,ptlStatusId);
}

残りのコードは、BondLocationEBean が db のすべての列にマップされる上記の属性のゲッターとセッターです。

前もって感謝します。

4

2 に答える 2

0

最終的に解決策を見つけ、

<f:setPropertyActionListener value="#{item}" 
                        target="#{bLDashBoardAction.blEbean}" />

Ebean オブジェクトをターゲットとしてポイントする必要があります。そうすれば、bLDashBoardAction.blEbean.rackTagCode で変数を取得できます。

于 2012-07-11T06:55:40.067 に答える
0

ダイアログ ボックスで間違った型の変数を呼び出しています。変化する

<h:outputText id="blNo" value="#{item.rackTagCode}" />

<h:outputText id="blNo" value="#{bLDashBoardAction.rackTagCode}" /> 
于 2012-07-10T13:49:03.723 に答える