我正在开始使用JSF和PrimeFace数据表进行开发。我已经准备了以下xhtml页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui"> <h:head> <title>Find Capital of Countries</title> </h:head> <h:body> <h:form id="FrmTest"> <p:dataTable id="ListSites" value="#{testing.SiteSearch()}" var="lst" editable="true"> <f:facet name="header"> List of Sites </f:facet> <p:column> <f:facet name="header"> Site Code </f:facet> #{lst.stCode} </p:column> <p:column headerText="Site Description"> <h:outputText value="#{lst.stDescription}" /> </p:column> <p:column headerText="is Active"> <div style="text-align: center;"> <p:selectBooleanCheckbox value="#{lst.stActive}" /> </div> </p:column> <p:column> <f:facet name="header"> Site Active </f:facet> <div style="text-align: center;"> <h:outputText value= "#{lst.stActive}" /> </div> </p:column> <p:column> <f:facet name="header"> Modified By </f:facet> #{lst.modifiedBy} </p:column> <p:column> <f:facet name="header"> Modification Date </f:facet> #{lst.modifiedDate} </p:column> <p:column> <f:facet name="header"> Has Error </f:facet> #{lst.hasError} </p:column> <p:column> <f:facet name="header"> Error Description </f:facet> #{lst.errorDescription} </p:column> <p:column> <f:facet name="header"> Row State </f:facet> #{lst.rowState} </p:column> </p:dataTable> <h:outputLabel value="Enter Country Name:"/> <h:inputText id="country" binding="#{testing.country}" valueChangeListener="#{testing.findCapitalListener}" immediate="true" onchange="document.getElementById('findcapital').click();" /> <br/> <br/> <h:outputLabel value="Capital is: " /> <h:inputText id="capital" binding="#{testing.capital}" immediate="true"/> <br/> <br/> <h:commandButton value="Submit" partialSubmit="true" /> <div style="visibility: hidden" > <h:commandButton id="findcapital" value="findcapital" partialSubmit="true" immediate="true" /> </div> </h:form> </h:body> </html>
我希望在名为country的文本框中输入内容以更新名为ListSites的数据表。关联的侦听器称为(已创建system.out.println),但未进行素数更新。这是监听器:
```
public void findCapitalListener(ValueChangeEvent cdl) {
String country = cdl.getNewValue().toString();
System.out.println("Country is : " + country);
StringBuilder capitalCountry = new StringBuilder();
findCapital(country, capitalCountry);
capital.setValue(capitalCountry.toString());
siteDto = listSiteDto.get(0);
siteDto.setStDescription(capitalCountry.toString());
listSiteDto.set(0, siteDto);
PrimeFaces.current().ajax().update("FrmTest:ListSites");
//System.out.println("Capital is : " + capital.getValue());
//System.out.println("New DTO Description : " + siteDto.getStDescription());
System.out.println("New list Description : " + listSiteDto.get(0).getStDescription());
}
```
我正在开始使用JSF和PrimeFace数据表进行开发。我已经准备了以下xhtml页面:
问题是由于以下事实:填充数据表(SiteSearch())的函数正在从数据库中检索数据。在那个阶段,我想在更新数据库之前刷新页面显示。我用列表获取程序替换了该函数,现在一切正常。