I'm trying to understand the 'DVD Store' sample that comes with seam distribution. The EditCustomerAction.saveUser() could return the "success" string, but I can't find its reference in the pages.xml. How does Seam know which page it should forward to?
public String saveUser() {
if (!isValidNamePassword()) {
facesMessages.add("User name #{customer.userName} is not unique");
return null;
}
try {
em.persist(customer);
sessionContext.set("currentUser", customer);
Actor.instance().setId(customer.getUserName());
identity.setUsername(customer.getUserName());
identity.setPassword(customer.getPassword());
identity.login();
facesMessages.addFromResourceBundle("createCustomerSuccess");
return "success";
} catch (InvalidStateException e) {
InvalidValue[] vals = e.getInvalidValues();
for (InvalidValue val: vals) {
facesMessages.add(val);
}
return null;
} catch (RuntimeException e) {
ctx.setRollbackOnly();
facesMessages.addFromResourceBundle("createCustomerError");
return null;
}
}
Try to look at the pageflow file. You'll get a success there, see where it redirects upon completion