You can probably crank up the log levels for your
JSF implementation and see the gory details, but I rarely get that desperate. The mechanism "just works", except when it doesn't, and then you don't usually get any error messages.
Several things can mess you up.
1. If the action method is never called, obviously it won't navigate. So you can put a trace print message in the action method to make sure it called. Or set a debugger breakpoint. The action method will only be called if all fields in the submitted form pass validation, so an "h:messages" tag on the page can point out any validation errors.
2. If there's no navigation handler for the outcome you indicate, it won't navigate. Not a problem in your case, though unless I missed something.
3. If the destination URL does not exist, it won't navigate. Note that I said
URL and not "page definition", "file", or "resource". That's because JSF navigation is to a URL and URLs are NOT the same thing as files.
4. If the destination is not a JSF URL, it won't navigate. You can't pass from JSF to a
JSP, for example using navigation. If the JSF page needs to advance to a JSP or
servlet or non-JSF URL such as
Struts, you can't do that in the action method via navigation. You'll have to do a forward in the action processor or use a "h:outputLink", depending on whether or not you have action processing to do.