Innerhalb einer Phase Listener-Klasse, die während der Phase "RESTORE_VIEW" ausgeführt wird, habe ich etwas Code wie diesen:
public void afterPhase(PhaseEvent event) {
FacesContext fc = event.getFacesContext();
NavigationHandler nh = fc.getApplication().getNavigationHandler();
nh.handleNavigation(fc, null, "/a/specific/path/to/a/resource.jspx");
}
Die Navigation zur neuen URL funktioniert hier nicht. Die gestellte Anfrage erhält lediglich eine Antwort von der ursprünglichen JSPX, zu der navigiert wurde.
Code wie dieser funktioniert gut:
public void afterPhase(PhaseEvent event) {
FacesContext fc = event.getFacesContext();
NavigationHandler nh = fc.getApplication().getNavigationHandler();
nh.handleNavigation(fc, null, "OUTCOME_DEFINED_IN_FACES_CONFIG_XML");
}
Außerdem funktioniert das erste Snippet mit einem IceFaces Faces Provider, aber nicht mit Sun JSF 1.2, das ich verwenden muss. Gibt es etwas, das ich tun kann, um den Code zu reparieren, so dass es möglich ist, zu bestimmten URLs weiterzuleiten?