Jsf 2 Primefaces命令按钮不更新数据表

Jsf 2 Primefaces命令按钮不更新数据表,jsf-2,primefaces,datatable,commandbutton,Jsf 2,Primefaces,Datatable,Commandbutton,我有primefaces命令按钮多个更新问题。命令按钮位于窗体内,而datatable不在窗体内 我试过: update=":datalist1,form1" update=":datalist1 form1" update="datalist1 form1" update=":#{p:component('datalist1')},form1" form1每次更新,但dattable仍不更新 Version info: primefaces: 5.3 jsf: org.glassfis

我有primefaces命令按钮多个更新问题。命令按钮位于窗体内,而datatable不在窗体内

我试过:

update=":datalist1,form1" 
update=":datalist1 form1" 
update="datalist1 form1"
update=":#{p:component('datalist1')},form1"
form1每次更新,但dattable仍不更新

Version info:
primefaces: 5.3 
jsf: org.glassfish 2.3.0-m04
spring: 4.2.3
and I use cdi for controller beans
第页:


人员名单
类别:

@Named
@SpringViewScoped
public class PersonelController implements Serializable{

    private static final long serialVersionUID = 1L;

    @Inject
    private PersonelService personelService;
    private List<Personel> personels;
    private List<Personel> selectedPersonel;
    private Personel personel;

    @PostConstruct
    public void init(){
        personels=personelService.findAll();
        personel=new Personel();
    }

    public PersonelService getPersonelService() {
        return personelService;
    }

    public void setPersonelService(PersonelService personelService) {
        this.personelService = personelService;
    }

    public List<Personel> getPersonels() {
        return personels;
    }

    public void setPersonels(List<Personel> personels) {
        this.personels = personels;
    }

    public List<Personel> getSelectedPersonel() {
        return selectedPersonel;
    }

    public void setSelectedPersonel(List<Personel> selectedPersonel) {
        this.selectedPersonel = selectedPersonel;
    }

    public Personel getPersonel() {
        return personel;
    }

    public void setPersonel(Personel personel) {
        this.personel = personel;
    }

    public void createPersonel(){
        System.out.println("Personel adding..");
        personelService.create(personel);
        personel=new Personel();
        System.out.println("Personel added");
    }

}
@Named
@SpringViewScope
公共类PersonelController实现可序列化{
私有静态最终长serialVersionUID=1L;
@注入
私人人事服务;
私人名单人员;
私人名单选定人员;
私人人员;
@施工后
公共void init(){
personels=personelService.findAll();
personel=新的personel();
}
公共PersonelService getPersonelService(){
返回人员服务;
}
公共无效设置PersonelService(PersonelService PersonelService){
this.personelService=personelService;
}
公共列表getPersonels(){
返回人员;
}
公共作废设置人员(列出人员){
this.personels=个人;
}
公共列表getSelectedPersonel(){
返回所选人员;
}
公共无效设置selectedPersonel(列表selectedPersonel){
this.selectedPersonel=selectedPersonel;
}
公共人员{
返回人员;
}
公共无效设置人员(Personel Personel){
this.personel=personel;
}
public void createPersonel(){
System.out.println(“人员添加…”);
personelService.create(personel);
personel=新的personel();
System.out.println(“人员添加”);
}
}

我已经研究过primefaces命令按钮更新,但所有的建议都不适用于我。提前谢谢

在我看来,新创建的人员似乎从未添加到列表中。所以你必须举例说

personels.add(personel);


在createPersonel()中,或将personels设置为null并在getPersonels()中执行延迟加载

我添加了personels=personelService.findAll();为了创建方法,我使用了update“:datalist1,form1”它对我很有用,非常感谢
personels.add(personel);
personels=personelService.findAll();