Abrufen von Anfrage- und Sitzungsparametern und -attributen von JSF-Seiten
Ich bin mit JSF mit facelets und ich brauche, um die request-und session-Parameter in JSF-Seite. In JSP-Seiten habe ich diese parameter wie: "${requestScope.paramName}"
oder "${sessionScope.paramName}"
. Aber jetzt nach der Verwendung von JSF gibt es nur Bohnen und können Sie keinen Wert, außer bean-Attribute.
HINWEIS: Die session-Attribute das, was ich brauche, ist auto gefüllt mit acegi security, so kann ich nicht bekommen keinen Zugang zu Ihnen.
Also, was ist jetzt zu tun?
InformationsquelleAutor der Frage | 2009-02-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ein Anfrage-parameter id mit dem Ausdruck:
parameter name. Nur der erste Wert für jeden parameter name enthalten ist.
Attribut name.
Abschnitt 5.3.1.2 der JSF 1.0 Spezifikation definiert die Objekte, die aufgelöst werden muss, die durch die variable-resolver.
InformationsquelleAutor der Antwort McDowell
Können Sie auch eine Bohne (request-scoped empfohlen) und direkt Zugriff auf den Inhalt durch die FacesContext.
Können Sie das HttpServletRequest und HttpServletResposne Objekten mit dem folgenden code:
Danach können Sie den Zugriff auf die einzelnen Parameter über
getParameter(paramName)
oder Zugriff auf die Karte übergetParameterMap()
req
ObjektDem Grund schlage ich vor, eine Anfrage scoped bean ist, können Sie diese während der Initialisierung (worst-case-Szenario wird der Konstruktor. Die meisten frameworks geben Sie einige Ort, um code in bean-Initialisierung Zeit) und Sie werden getan werden, als Ihre Anforderung.
Ist es jedoch ein bisschen ein hack. 😉 Man kann wollen, zu schauen, zu sehen, wenn es eine JSF Acegi-Modul, das Ihnen erlaubt, erhalten Sie Zugriff auf die Variablen, die Sie benötigen.
InformationsquelleAutor der Antwort Drew
Können Sie entweder
<h:outputText value="#{param['id']}" />
oder<h:outputText value="#{request.getParameter('id')}" />
Allerdings, wenn Sie möchten, übergeben Sie die Parameter Ihrer backing beans mit
f:viewParam
ist wahrscheinlich das, was Sie wollen. "Ein view-parameter ist eine Zuordnung zwischen einem query-string-parameter und ein Modell Wert."<f:viewParam name="id" value="#{blog.entryId}"/>
Damit wird die id-Parameter der GET-parameter an die blog-bean
entryId
Feld. Sehen http://java.dzone.com/articles/bookmarkability-jsf-2 für die details.InformationsquelleAutor der Antwort ustun
Können Sie so:
Weil
requestScope
odersessionScope
ist ein Map-Objekt.InformationsquelleAutor der Antwort Ming
Können Sie auch ein tool verwenden, wie OcpSoft ist PrettyFaces zu injizieren dynamische parameter-Werte direkt in die JSF-Beans.
InformationsquelleAutor der Antwort Lincoln
Vorausgesetzt, dass Sie bereits Ihr Objekt als Attribut in der session-Karte von der aktuellen Instanz der
FacesContext
von Ihrem managed-bean, Sie können es von der JSF-Seite :Wenn Ihr Objekt eine Eigenschaft, erhalten Sie es von:
InformationsquelleAutor der Antwort Omar
Sind Sie sicher, dass Sie können nicht erhalten Sie Zugriff auf request /session-scope-Variablen, die von einer JSF-Seite?
Dies ist, was ich Tue, in unserer login-Seite, mit Spring Security:
InformationsquelleAutor der Antwort