dataTable 保存后不显示新添加的项目
dataTable does not show newly added item after save
我有一个使用 primefaces 和 JSF 的简单表单。单击保存后,它会显示另一个 jsf 页面,其中我有一个 primefaces 数据表。它应该在数据表中显示新创建的记录,但事实并非如此。为了看到新记录,我必须回到另一个页面,然后重新打开我有数据表的页面。我可以看到新记录。如何解决这个问题,以便在单击保存时我可以看到新记录?
<p:dataTable id="dta" value="#{CarComponent.listCars}" var="current" rows="15" paginator="true" paginatorPosition="bottom">
</dataTable>
//method where listCars is populated
public String carLists(){
listCars = new arrayList(carDao.findAll());
return "/jsf/listOfcars.xhtml";
}
//save method - on clicking save it should display the datatable
public String save(Cars car){
carService.save(car);
return "/jsf/listOfcars.xhtml";
}
public String getlistCars() {
return listCars;
}
public void setlistCars(String listCars) {
this.listCars = listCars;
}
我只能猜测,但我假设 CarService
class 至少是 ViewScoped
甚至 SessionScoped
?无论哪种方式,正如弗里茨在评论中所说,汽车列表显然没有更新,因为视图没有重新渲染。
如果 bean 是 @ViewScoped
,您可以使用 return "/jsf/listOfCars.xhtml?faces-redirect=true"
进行重定向,或者您必须将新生成的汽车添加到汽车列表中,例如
public String saveCar(Car car) {
carService.save(car);
listCars.add(car);
return "/jsf/listOfCars.xhtml";
}
我有一个使用 primefaces 和 JSF 的简单表单。单击保存后,它会显示另一个 jsf 页面,其中我有一个 primefaces 数据表。它应该在数据表中显示新创建的记录,但事实并非如此。为了看到新记录,我必须回到另一个页面,然后重新打开我有数据表的页面。我可以看到新记录。如何解决这个问题,以便在单击保存时我可以看到新记录?
<p:dataTable id="dta" value="#{CarComponent.listCars}" var="current" rows="15" paginator="true" paginatorPosition="bottom">
</dataTable>
//method where listCars is populated
public String carLists(){
listCars = new arrayList(carDao.findAll());
return "/jsf/listOfcars.xhtml";
}
//save method - on clicking save it should display the datatable
public String save(Cars car){
carService.save(car);
return "/jsf/listOfcars.xhtml";
}
public String getlistCars() {
return listCars;
}
public void setlistCars(String listCars) {
this.listCars = listCars;
}
我只能猜测,但我假设 CarService
class 至少是 ViewScoped
甚至 SessionScoped
?无论哪种方式,正如弗里茨在评论中所说,汽车列表显然没有更新,因为视图没有重新渲染。
如果 bean 是 @ViewScoped
,您可以使用 return "/jsf/listOfCars.xhtml?faces-redirect=true"
进行重定向,或者您必须将新生成的汽车添加到汽车列表中,例如
public String saveCar(Car car) {
carService.save(car);
listCars.add(car);
return "/jsf/listOfCars.xhtml";
}