else - jsf tutorial netbeans
JSF 2 y Post/Redirect/Get? (1)
Puede hacer esto con un ConfigurableNavigationHandler
personalizado. Aquí hay un ejemplo de inicio:
package com.example;
import java.util.Map;
import java.util.Set;
import javax.faces.application.ConfigurableNavigationHandler;
import javax.faces.application.NavigationCase;
import javax.faces.application.NavigationHandler;
import javax.faces.context.FacesContext;
public class RedirectNavigationHandler extends ConfigurableNavigationHandler {
private NavigationHandler parent;
public RedirectNavigationHandler(NavigationHandler parent) {
this.parent = parent;
}
@Override
public void handleNavigation(FacesContext context, String from, String outcome) {
if (!outcome.endsWith("?faces-redirect=true")) {
outcome += "?faces-redirect=true";
}
parent.handleNavigation(context, from, outcome);
}
@Override
public NavigationCase getNavigationCase(FacesContext context, String fromAction, String outcome) {
if (parent instanceof ConfigurableNavigationHandler) {
return ((ConfigurableNavigationHandler) parent).getNavigationCase(context, fromAction, outcome);
} else {
return null;
}
}
@Override
public Map<String, Set<NavigationCase>> getNavigationCases() {
if (parent instanceof ConfigurableNavigationHandler) {
return ((ConfigurableNavigationHandler) parent).getNavigationCases();
} else {
return null;
}
}
}
Regístrelo de la siguiente manera en faces-config.xml
:
<application>
<navigation-handler>com.example.RedirectNavigationHandler</navigation-handler>
</application>
Corrígeme si me equivoco, pero estoy pensando en que todos mis envíos que no sean AJAX deben usar el método Publicar / Redirigir / Recibir (PRG), ya que GET debe usarse para actualizar / consultar datos, y en mi caso , las páginas de la aplicación en las que puedo pensar realmente solo actualizan los datos y luego actualizan la página, por lo que creo que PRG se ajusta aquí.
Creo que puedo hacer esto usando faces-config.way, donde uso el <redirect/>
, o puedo usar el return "myview.xhtml?faces-redirect=true";
Ahora la pregunta es ...
¿Hay alguna forma de que pueda configurar esto globalmente para que las llamadas / envíos no AJAX, automáticamente hagan uso de faces-redirect = true, para que mi fuente sea tan simple como esta:
return "myview";