У меня есть p:datalist
который содержит Набор объектов и p:commandButton
которые должны добавить один объект в этот набор. Но что бы я ни делал, datalist
обновляется слишком рано и не содержит нового объекта. Но когда я нажимаю, например, 2 раза, datalist
обновляется 2 раза, и после первого обновления он не содержит никакого нового элемента, но после добавления второго первого элемента. Как синхронизировать это обновление? Я пробовал update="id"/"@all"
, sync/async, ajax, но он всегда один и тот же.p: dataList не обновляется
Page
<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