Hinzufügen Anfrage-parameter in jsf2?
In meine app vor dem Upgrade auf jsf 2, wenn Sie eine benutzerdefinierte Umleitung, die ich verwendet, um manuell einen request-parameter mit einem bestimmten Wert im externen Kontext wie diesem:
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
.put(CmwNavigationControllerBean.PARAM_DISPLAY_TARGET_POPUP, "true");
Nun diese Zeile löst eine exception aus, weil es scheint, dass diese anzeigen dürfen nicht mehr geändert werden:
at java.util.Collections$UnmodifiableMap.put(Unknown Source) [rt.jar:1.7.0]
Ist nicht wirklich keine andere Möglichkeit zur Umgehung dieser Ausnahme? Ich mache die Umgestaltung, weil der upgrade und ich versuche, die änderungen, die auf minimalem Niveau.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eher als getRequestParameterMap() (der schreibgeschützt ist), Sie sollten aufrufen getRequestMap() auf die
ExternalContext
.Beispiel:
return FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(CmwNavigationControllerBean.PARAM_DISPLAY_TARGET_POPUP);
Können Sie entweder einen view-parameter, oder verwenden Sie die flash-Bereich für die. Ein view-parameter ist in der Praxis ein GET-parameter, die Sie übergeben können, wenn Sie die Seite anfordern, die Sie umgeleitet werden sollen. Für Ihren Fall sollten Sie umleiten, um es mit dem parameter angehängt.
Rückkehr der navigation Fall mit dem parameter angehängt:
Fangen Sie es von Ihrem Ziel anzeigen:
Anderen Weise, wenn Sie wollen vermeiden, wie es in deinem GET-request, ist die Verwendung von flash-Bereich, das soll behoben sein für Mojarra 2.1.27 und 2.2.5 Versionen. Flash-scoped Werte sind entworfen, um eine Umleitung, während die Anfrage nicht.
Siehe auch: