使用Ajax更新Primefaces数据表

时间:2015-04-04 13:24:15

标签: ajax jsf jsf-2 primefaces datatable

我在尝试使用Ajax更新数据表时遇到了麻烦。我在commandButton中有一个更新属性,我在其中选择了表,但是当我单击按钮时,ajax不起作用并且页面被刷新。

这是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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough">
<head></head>
<body>
<h:form id="search">
    <p:inputText id="searchInput" value="#{matchBean.searchInput}"
        required="true" requiredMessage="Please enter match id"
        pt:placeholder="Enter player id"></p:inputText>
    <p:commandButton ajax="true" value="Search" update=":# 
    {p:component('resultsTable')}"
        actionListener="#{matchBean.searchForMatches()}">
    </p:commandButton>
</h:form>
<h:form id="results">
    <p:dataTable var="match" value="#{matchBean.matches}" id="resultsTable">
        <p:column headerText="Id" id="idHeader">
            <h:outputText id="idText" value="#{match.match_id}">  

</h:outputText>
        </p:column>
    </p:dataTable>
</h:form>
</body>
</html>

支持bean:

@ManagedBean
@RequestScoped
public class MatchBean {

private Match match;
private List<MatchResponseDetails> matches;
private String searchInput; 

public void searchForMatch() {
    setMatch(new MatchRetriever().getMatchDetails(searchInput));
}

public void searchForMatches() {
    setMatches(new MatchRetriever().getLightMatchData(searchInput));
}

public Match getMatch() {
    return match;
}

public void setMatch(Match match) {
    this.match = match;
}

public List<MatchResponseDetails> getMatches() {
    return matches;
}

public void setMatches(List<MatchResponseDetails> matches) {
    this.matches = matches;
}

public String getSearchInput() {
    return searchInput;
}

public void setSearchInput(String searchInput) {
    this.searchInput = searchInput;
    System.out.println(searchInput);
}

0 个答案:

没有答案