# Parameter übergeben und auslesen



## DanielS (18. Mrz 2012)

Guten Tag,

ich arbeite mich derzeit in JBoss + JSP + RichFaces ein und möchte nun folgendes erreichen:

Ich möchte an einen Link Parameter anhängen. Ein einfaches Beispiel ist z.B., dass ich mit der url ../projects/32/  eine Projects Seite öffnen möchte, und dort dann die ID 32 verarbeiten möchte. Wie kann ich das am sinnvollsten erreichen?

Viele Grüße und vielen Dank im Vorraus,
Daniel


----------



## JimPanse (19. Mrz 2012)

JSF 2 link, commandLink and outputLink example


----------



## DanielS (20. Mrz 2012)

Hallo JimPanse,

vielen Dank für deine Antwort. Ich habe es damit jetzt geschafft, an Links Parameter per get anzuhängen. Das ist schonmal sehr gut soweit. 
Allerdings möchte ich jetzt die Get Parameter auf der nächsten Seite verwerten. Wie kann ich das machen?
Und mir ist noch eine komische Sache aufgefallen. Vorher war beim Link als erster Parameter die Session ID mit dabei. Das konnte ich allerdings nicht mehr reproduzieren. Was hat es denn damit auf sich?

Viele Grüße
Daniel


----------



## DanielS (20. Mrz 2012)

Ich finde leider keinen edit Button, deshalb ein neuer Beitrag.

Als Ergänzung: Ich möchte die Parameter gerne auf meiner xhtml Seite auslesen und nicht im Java Code (da habe ich es schon geschafft). Ist das denn überhaupt möglich?

Viele Grüße
Daniel


----------



## Fant (21. Mrz 2012)

```
<%= request.getParameter("myparam") %>
```
oder

```
${param.myparam}
```

Meinst du so?

Gruß Fant


----------



## DanielS (22. Mrz 2012)

Hallo Fant,

ich habe es jetzt so gelöst, dass ich die Parameter über

<f:metadata>
  <f:viewParam name="id" value="#{providerBean.id}"/>
</f:metadata>

in einer RequestScoped Bean im Hintergrund speichere und das funktioniert so jetzt auch.

Eine Frage habe ich aber noch. Mit dieser Lösung werden die Parameter ja per Get übertragen. Gibt es auch eine Möglichkeit, die Parameter per "/" zu trennen, so dass die URL keine Get Parameter mehr enthält?

Viele Grüße
Daniel


----------



## nillehammer (22. Mrz 2012)

> Vorher war beim Link als erster Parameter die Session ID mit dabei. Das konnte ich allerdings nicht mehr reproduzieren. Was hat es denn damit auf sich?


Für einen Webserver (egal ob Apache, Tomcat, JBoss oder sonstwas) ist jeder Request völlig unabhängig von allen anderen. Wenn man auf Serverseite erkennen möchte, dass Requests irgendwie zusammen gehören,z.B. zu einer Sitzung eines eingeloggten Users, braucht man ein gemeinsames Merkmal in allen Requests. Dafür wird die Session-ID verwendet. Diese muss jetzt irgendwie in jeden Request mit rein. Bei GET-Requests kann dies ein url-Parameter sein. Bei POSTS von Formularen ist sie meist in einem hidden field versteckt. Die dritte Variante, die bei allen Arten von Requests funktioniert, ist sie in ein Cookie zu schreiben, dass bei jedem Request mitgesendet wird. Beim ersten Aufruf einer Seite weiß der Webserver noch nicht, ob Dein Browser Cookies akzeptiert. Deswegen generiert er die Session-ID vorsichtshalber mit in die Links. Beim zweiten Aufruf weiß er es dann und lässt sie einfach weg.


----------



## DanielS (22. Mrz 2012)

nillehammer hat gesagt.:


> Für einen Webserver (egal ob Apache, Tomcat, JBoss oder sonstwas) ist jeder Request völlig unabhängig von allen anderen. Wenn man auf Serverseite erkennen möchte, dass Requests irgendwie zusammen gehören,z.B. zu einer Sitzung eines eingeloggten Users, braucht man ein gemeinsames Merkmal in allen Requests. Dafür wird die Session-ID verwendet. Diese muss jetzt irgendwie in jeden Request mit rein. Bei GET-Requests kann dies ein url-Parameter sein. Bei POSTS von Formularen ist sie meist in einem hidden field versteckt. Die dritte Variante, die bei allen Arten von Requests funktioniert, ist sie in ein Cookie zu schreiben, dass bei jedem Request mitgesendet wird. Beim ersten Aufruf einer Seite weiß der Webserver noch nicht, ob Dein Browser Cookies akzeptiert. Deswegen generiert er die Session-ID vorsichtshalber mit in die Links. Beim zweiten Aufruf weiß er es dann und lässt sie einfach weg.



Ah das klingt sehr logisch, vielen Dank für die ausführliche Antwort!

Viele Grüße 
Daniel


----------

