我有一个JSF-EJB应用程序,我在单选模式下使用。 Datatable是用户单击“保存”按钮时出现的Dialog的一部分。第一次,在DataTable中没有选择任何行是正确的。现在当用户选择一行时。并关闭此对话框。然后再次打开此对话框。 DataTable中的两个行都被选中。
以下是使用的代码。 请帮忙。
XHTML:
<p:dataTable var="address" id="confirmDataTable"
value="#{householdHomeAddressBean.normalizedAddressList}"
selection="#{householdHomeAddressBean.selectedAddress}"
rowKey="#{address.id}" styleClass="confirmAddTable">
<p:column selectionMode="single"
style="width:40px;text-align:center" id="radioCol">
</p:column>
<p:column >
<p:outputLabel value="#{address.message}"/>
</p:column>
<p:column headerText="Street Address" id="headerStreet">
<p:outputLabel value="#{address.addrLine1}" /> <p:outputLabel value="#{address.addrLine2}" />,
</p:column>
<p:column headerText="County" id="headerCounty">
<p:outputLabel value="#{address.countyName}" />
</p:column>
</p:dataTable>
<p:commandButton styleClass="fl-right btn" value="OK" process="@form" validateClient="true" update="@form"
action="#{householdHomeAddressBean.saveAddress}">
</p:commandButton>
<p:commandButton styleClass="fl-left btn" value="Cancel"
onclick="PF('addressDialog').hide();"></p:commandButton>
</p:dialog>
在Managed Bean中:
public void saveAddress() {
context = RequestContext.getCurrentInstance();
context.execute("PF('addressDialog').hide();");
// *******************持久性代码************** ///////// //
}
请让我知道我做错了什么。
答案 0 :(得分:0)
此问题已得到解决。我只是设置selectedAddress = null;它完美无缺:)