我有p:datalist
其中包含對象集和p:commandButton
應該添加一個對象到這個集。但無論我做什麼,datalist
更新過快,並且不包含新對象。但是,當我點擊例如2次,datalist
刷新2次,第一次刷新後,它不包含任何新元素,但在第二個第一個元素後添加。我如何同步此更新?我試過update="id"/"@all"
,sync/async,ajax,但它總是一樣的。p:dataList不更新
頁
<m:form id="lastForm">
<p:commandButton id="addProject" action="#{userBacking.addProject}" value="myadd">
</p:commandButton>
<p:dataList id="mydatalist" value="#{userBacking.user.projects.toArray()}" var="project">
#{project.projectName}, #{project.id}
</p:dataList>
</m:form>
UserBacking類
@Named
@RequestScoped
public class UserBacking {
private User user;
@Inject
private UserService userService;
(...)
public void addProject() {
userService.addProject(user);
}
}
UserService
@Stateless
public class UserService extends BaseEntityService<Long, User> {
@PersistenceContext
private EntityManager entityManager;
(...)
public void addProject(User user) {
User existingUser = get(user);
Project proj = new Project();
proj.setProjectName("projectname");
proj.setUser(existingUser);
existingUser.addProjects(proj);
super.update(existingUser);
}
}
這完全是關於@ViewScoped。 – zachbar