Hello
I have a registration form with action method that goes like this (if all validation passes):
public String register(User user) throws NoSuchAlgorithmException { if (!checkLoginAvailable(user)) { FacesContext.getCurrentInstance().addMessage("register:loginDecorate:login", new FacesMessage("This login is already taken, try another one.")); // facesMessages.addToControl("register:loginDecorate:login", // "This login is already taken, try another one."); return "fail"; } ... return "ok"; }
Pages.xml has render
after fail
outcome. Registration form is rerendered - this all works fine. Originally I wanted to use line that's commented out - the trouble is that no message appeared. Using FacesContext... line all works out. I debugged the code and found out that my messages are stuck in tasks
field at that moment. I've tried afterPhase static method (out of desperation ;-)) but still no result.
What is the real difference between those two approaches? I know that FacesMessages support messages over redirect, etc, etc... but how can I use them for this simple task?
Thank you