Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 获取数据后访问并刷新dataTable_Jsf_Primefaces_Java Ee 6 - Fatal编程技术网

Jsf 获取数据后访问并刷新dataTable

Jsf 获取数据后访问并刷新dataTable,jsf,primefaces,java-ee-6,Jsf,Primefaces,Java Ee 6,我的JSF页面和(可能)支持bean出现了一些问题。我有自己的模板,我用一些页面填充内容区域。我有一个带有commandbutton的搜索页面,我想从数据库(JPA)中获取数据,然后填充datatable。 看看我的searchpeople.xhtml: <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets" template="template.xhtml" x

我的JSF页面和(可能)支持bean出现了一些问题。我有自己的模板,我用一些页面填充内容区域。我有一个带有commandbutton的搜索页面,我想从数据库(JPA)中获取数据,然后填充datatable。 看看我的searchpeople.xhtml:

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="template.xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:f="http://java.sun.com/jsf/core">

    <ui:define name="content">
        <h:form id="sampleform">  
            <p:accordionPanel activeIndex="-1" id="accordingpanle">  
                <p:tab title="User options" >   
                    <p:growl id="growl" showDetail="true" showSummary="true"/> 
                    <p:commandButton id="searchbutton" action="#{mb_person.search}" value="Szukaj" update="personsearchresulttable" />
                </p:tab>
            </p:accordionPanel>

            <p:dataTable id="personsearchresulttable" var="person" value="#{mb_person.people}" widgetVar="personTable" style="margin-top: 10px" >  
                <p:column headerText="Id" style="width:10%">
                    <h:outputText value="#{person.id}" />  
                </p:column>
                <p:column headerText="Name" style="width:20%">  
                    <h:outputText value="#{person.name}" />  
                </p:column>  
                <p:column headerText="Surname" style="width:20%">  
                    <h:outputText value="#{person.surname}" />  
                </p:column>  
                <p:column headerText="Company">  
                    <h:outputText value="#{person.companyName}" />  
                </p:column> 
                <p:column style="width:4%" headerText="Open">  
                    <h:link outcome="persondetails" value="Open">
                        <!--<f:param name="personid" value="#{person.id}"/>-->
                        <f:param name="personid" value="10076"/>
                    </h:link>
                </p:column>  
            </p:dataTable>  
        </h:form>  
    </ui:define>
</ui:composition>

还有我的带有EJB注入的backingbean

@ManagedBean(name="mb_person")
public class MB_Person implements Serializable{

    @EJB
    private PersonFacade personFacade;
    private List<PersonAndCompany> people = new ArrayList<PersonAndCompany>();

    public MB_Person() {
    }

    public List<PersonAndCompany> getPeople() {
        return people;
    }

    public void setPeople(List<PersonAndCompany> people) {
        this.people = people;
    }

    public void search() {
        int[] range = {0,5};
        setPeople(personFacade.findPersonWithMoreThanXProjects(20));
        setPeople(personFacade.findPersonAndCompanyName(range));

        for(PersonAndCompany p:people){
            System.out.println(p.getName());
        }
    }
    public String goToPersonDatailPage(int id){
        return "persondetails.jsf?personid="+id;
    }
}
@ManagedBean(name=“mb_person”)
公共类MB_Person实现可序列化{
@EJB
私人私人门面;
private List people=new ArrayList();
公共医疗服务人员(){
}
公共列表getPeople(){
还人,;
}
公众人物(列出人物){
这个。人=人;
}
公开无效搜索(){
int[]范围={0,5};
setPeople(personFacade.FindPerson拥有超过X个项目(20));
setPeople(personFacade.findPersonAndCompanyName(range));
对于(个人和公司p:个人){
System.out.println(p.getName());
}
}
公共字符串goToPersonDatailPage(int-id){
return“persondetails.jsf?personid=“+id;
}
}
我尝试了小测试,并在方法搜索中打印出所有数据,收到了很好的结果。 有人可以帮助我如何使用ajax更新数据表吗?在这种情况下,我有一个例外
找不到从“sampleform:accordingpanle:searchbutton”引用的标识符为“personsearchresulttable”的组件。相对于父组件搜索相对客户端ID。它本身就是一个
NamingContainer
。因此,将在
的上下文中搜索相对客户端ID
personsearchresulttable
。但是,它实际上在面板外面,在
内部

您需要将相对客户端ID更改为绝对客户端ID

update=":sampleform:personsearchresulttable"
另见:

我知道,我重建、重新部署、重新启动服务器,很多时候,我尝试在chrome、safari和chrome incognito窗口中打开页面,但效果仍然一样-不起作用。谢谢!这就是我要找的。