Pessoal, estou utilizando no JBoss Seam o escopo Conversation, para fazer um cadastro com fluxo de páginas.
O problema é que quando passo para a próxima página, os objetos da página anterior se perdem.
Segue o meu MB:@Name("pointAction")
@Scope(ScopeType.CONVERSATION)
public class PointAction implements Serializable {
@In
private EntityManager entityManager;
@DataModel
private List<Point> activePoints;
@DataModelSelection
@Out(required=false, scope = ScopeType.CONVERSATION)
private Point point;
@Out(required = false, scope = ScopeType.CONVERSATION)
private AddressCompletion addressCompletion;
@Out(required=false, scope = ScopeType.CONVERSATION)
private PointConfig pointConfig;
@Begin
public String addPoint() {
// Instancio os objetos e direciono para a página xhtml.
// Depois de preencher os campos, direciono para a função addPointConfig
point = new Point();
addressCompletion = new AddressCompletion();
return "addPoint";
}
public String addPointConfig() {
// quando chego nessa função os objetos point e addressCompletion se perdem!
pointConfig = new PointConfig();
return "addPointConfig";
}
@End
public String savePoint() {
if (point.getPointId() == null && pointConfig.getPointConfigId() == null) {
// quando chega no End tá dando pau!!
entityManager.persist(addressCompletion);
entityManager.find(AddressCompletion.class, addressCompletion.getAddressCompletionId());
point.setAddressCompletion(addressCompletion);
point.setCreationDate(new Date());
point.setActive(true);
entityManager.persist(point);
pointConfig.setPoint(point);
entityManager.persist(pointConfig);
}
listPoints();
return "savePoint";
}
@Factory("activePoints")
@SuppressWarnings("unchecked")
public void listPoints() {
activePoints = entityManager.createQuery("" +
"select p from Point p " +
"where p.active = true " +
"order by p.name").getResultList();
}
}
Como faço para recuperar esses objetos ou fazer com que eles não se percam?
Obrigado!
------------------------------------------
Apenas troquei o s:button por h:commandButton e deu tudo certo.