我正在使用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);
}
剩下的代码是getter&amp;以上属性的setter,其中BondLocationEBean映射到db。中的所有列。
提前感谢。
答案 0 :(得分:0)
您在对话框中调用了错误的变量类型。变化
<h:outputText id="blNo" value="#{item.rackTagCode}" />
到
<h:outputText id="blNo" value="#{bLDashBoardAction.rackTagCode}" />
答案 1 :(得分:0)
终于找到了解决方案,
<f:setPropertyActionListener value="#{item}"
target="#{bLDashBoardAction.blEbean}" />
我应该将Ebean对象指向目标,然后我可以使用bLDashBoardAction.blEbean.rackTagCode获取变量。