JSF: Mit BenutzerId auf Nutzerdaten zugreifen

Status
Nicht offen für weitere Antworten.

Henrik

Aktives Mitglied
Hallo,

ich möchte gerne das man mit hilfe der BenutzerId auf eine Seite des Benutzer kommt. Also der Link wär zum Beispiel
Code:
 [url]http://localhost:8080/vtr_admin/pages/change-customer-details.jsf?id=9308[/url]

und man soll dann auf eine Seite kommen auf der man die Beutzer Daten des Benutzer ändern kann.

Jetzt hab ich das ganze mit Parameter übergabe gemacht so:

Code:
	<managed-bean>
		<managed-bean-name>changeCustomerDetailHandler</managed-bean-name>
		<managed-bean-class>
			com.vesseltracker.admin.search.CustomerDetailHandler
		</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
		<managed-property>
			<property-name>
			customerId</property-name>
			<property-class>int</property-class>
			<value>#{param.id}</value>
		</managed-property>
	</managed-bean>

Aber ich hab jetzt das Problem das wohl der Parameter nicht die ganze Session über gespeichert wird (siehe Fehlermeldung), gibt es andere wege das zu machen ?

Fehlermeldung:

Code:
type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: The scope of the referenced object: #{param.id} is shorter than the referring object

root cause

javax.faces.FacesException: The scope of the referenced object: #{param.id} is shorter than the referring object

lg

Henrik
 

Henrik

Aktives Mitglied
Was sein muß ist das man von auserhalb auf einen Link klicken kann und dann direkt zu dem Nutzer mit der ID kommt.
 
M

maki

Gast
Hmm.. nach dem ich gegoogelt habe, bin ich der Meinung, das man keine Managed-Bean Properties mit dem Scope session über URL Parameter direkt setzen kann.

Du müsstest in deiner Bean Action den Wert rausfinden und die Property manuell setzen:
Code:
 String id = (String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
Oder so ähnlich...
 

Henrik

Aktives Mitglied
mmh danke, so einen ähnlich lösung hab ich auch gefunden, aber so wirklich gefällt mir das nicht, gibt es keine andere lösung bei der man direkt einen Link zu einer Benutzerseite hat wo man auch Daten editieren kann ?
 
M

maki

Gast
Das problem ist nicht der link, die Daten dürfen schon in der URL stehen ("?name=wert&name2=wert2"), aber es darf nicht so in die Bean config eingetragen werden:
Code:
      <managed-bean-scope>session</managed-bean-scope>
      <managed-property>
         <property-name>
         customerId</property-name>
         <property-class>int</property-class>
         <value>#{param.id}</value>
      </managed-property>
denn da die Bean ja session scope hat, müsste param.id immer mitgeliefert werden, und das geht eben nicht.

Anstatt die property in der config standardmässig mit dem param.id zu verknüpfen, musst du das Manuell in der aufgerufenen action machen, aber natürlich nur beim ersten Aufruf ;)
 

Henrik

Aktives Mitglied
Aber setzt eine Action nicht immer vorraus das man von einem jsf link kommt (also commandLink) und nicht von auserhalb (also irgendein link den jeder von überall öffnen kann) ?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T jsp: Dateiname als BenutzerId speichern. Allgemeines EE 2
T JSP: Datei mit dem Namen des BenutzerId speichern Allgemeines EE 4
T Wie kann ich eine große Datenmenge vorhalten, damit ich seitens Frontend darauf zugreifen kann? Allgemeines EE 17
J Maven: mit JUnit auf Test- und Main-Classes zugreifen Allgemeines EE 3
T Einstieg in J2EE: Remote auf Bean zugreifen Allgemeines EE 11
B Tomcat6/axis1.4 kann nicht auf Dateien zugreifen Allgemeines EE 3
A Im PhaseListener auf Stateful Session Bean zugreifen Allgemeines EE 6
T Auf GlassFish JDBC-Ressourcen zugreifen Allgemeines EE 4
S Auf Datei ausserhalb des Tomcat zugreifen Allgemeines EE 4
A Aus einer JSP zugreifen auf ein Objekt einer anderen JSP Allgemeines EE 4
M Aus JSP auf EJB zugreifen Allgemeines EE 7
boxi JSF von einem Bean auf ein anderes Bean zugreifen Allgemeines EE 3
M Web Anwendung soll auf Basisobjekte zugreifen können Allgemeines EE 2
M Aus einem Servlet auf ein anderes zugreifen ? Allgemeines EE 2
ARadauer aus j2se anwendung auf j2ee elemente zugreifen Allgemeines EE 2
F Wie auf request.params mittels ${} zugreifen? Allgemeines EE 7
J Servlet Parameter aus web.xml übergeben, wie zugreifen? Allgemeines EE 2
K JSP mit JavaBeans auf Oracle zugreifen Allgemeines EE 3
H Von einem Servlet auf ein anderes zugreifen Allgemeines EE 4
M JSP/Servlet auf Festplatte zugreifen Allgemeines EE 8
J auf AppServer aus dem Internet zugreifen Allgemeines EE 3
clemson [Struts] Innerhalb Action auf form zugreifen Allgemeines EE 4
R Auf List mit JSP zugreifen Allgemeines EE 9
S jsp auf Servlet Context zugreifen Allgemeines EE 1

Ähnliche Java Themen


Oben