# Link in JSP setzen mit Parameter/Attribut



## kwonilchang (28. Sep 2010)

Hallo!

In meiner JSP-Seite möchte ich einen Link auf eine andere JSP-Seite einbauen. Der Link soll aber auch einen Parameter oder Attribut bekommen, damit ich auf der Ziel-JSP nur bestimmte Inhalte anzeigen lassen kann.

Setze ich den Link mit 


```
<a href="./edit-servlet"><%= user.getPassword() %></a>
```

wird kein Parameter mitübergeben.

Verwende ich dagegen


```
<a href="<jsp:forward page="/edit-servlet" > 
 <jsp:param name="editValue" 
     value="loginName" />
</jsp:forward>"><%= user.getLoginName() %></a>
```

wird der Request sofort an die Ziel-JSP weitergeleitet, ohne dass ich auf die Seite mit dem Link komme. Ich dachte, dass es in HTML sowas wie onclick gibt. Soweit ich das aber jetzt im Internet verstanden habe, ist das nur für Javascript. 

Gibt es für JSP eine andere Möglichkeit, den Link nur auszuführen, wenn man draufklickt?

Danke schonmal und viele Grüße!


----------



## Atze (28. Sep 2010)

ein link wird doch nur verfolgt wenn man draufklickt! *verwirrtbin* das liegt in der natur eines links, sonst wäre es n forward oder n redirect! 

meinst du vielleicht parameter über get mit dem link übergeben?

dann muss hinter die url ein "?" gefolgt von parametername=parameter wert

mehrere parameter werden mit dem "&" verbunden!

zb.: www.google.de?user=hans&id=1


----------



## kwonilchang (28. Sep 2010)

Danke für die Antwort. Ich glaub aber, das ist nicht das richtige.

Hier mal, was ich machen will: Ich habe ein Objekt vom Typ User. Dieses speichert Name etc. Auf einer JSP-Seite rufe ich getAttribute("user") auf und lasse die Daten dieses User-Objekts anzeigen. Laut Aufgabenstellung sollen die angezeigten Daten Links auf eine Seite sein, auf der man dann das Datum ändern kann.

Ich wollte die zweite Seite für die Änderung nun auch als JSP mit einem Formular realisieren. Es soll so aussehen:

<Datum>: |<Forminput>|

Für Datum möchte ich halt einsetzen, was man ändert, also z.B. Name: etc. Hierfür müsste die JSP-Seite aber wissen, was sie ausgeben soll. Also wollte ich auf der ersten JSP-Seite einen Parameter editString übergeben, den die zweite JSP dann ausliest. Ach stimmt, das Userobjekt muss ich auch wieder als Attribut weiterleiten. Für eine Weiterleitung gibt es aber nur den <jsp:forward>-Tag oder?


----------



## DerEisteeTrinker (28. Sep 2010)

ich würde versuchen das ganze ohne Scriptlets zu erreichen. Du wirst ja sicher iwelche Objekte im Request bzw. der Session verarbeiten. Dann nimm einfach die JSTL 
seite.html?param1=${user.loginName}&param2=${user.password}
etc. Sollte auf der JSP etwas verarbeitet werden, dann würde ich diese Verarbeitung in ein eigenes Tag auslagern. Hintergrund ist der, dass eine JSP nicht zur Verarbeitung gedacht ist, sondern lediglich zur Darstellung. Man beachte immer die 3-Faltigkeit der Programmierung 

Das User-Objekt würde ich in der Session ablegen, dann braucht da nichts großartig weitergeben. Das macht der WebServer für dich


----------



## Atze (28. Sep 2010)

es ginge auch ein redirect!

Implementing a Redirect in a JSP Page | Example Depot

aber ich hab dein problem immernoch nicht ganz verstanden. was ist denn das problem? das anzeigen? das weiterleiten? das ändern? ich blick da nicht ganz durch, sorry


----------

