# struts2 - Probleme mit parametrisierten URLs



## oetzi (3. Dez 2009)

Morgen  zusammen,

ich habe folgendes großes Problem:
Auf einigen meiner Seiten baue ich mir folgendermaßen Links zusammen:
< a href="< s:url namespace='/games' action='acceptQuest'></s:url>?queststepID=< sroperty value="pk_queststep" />" >Accept < /a>
Und das erzeugt auch erstmal wunderschöne Links die ungefähr so aussehen:
.../games/acceptQuest.action?queststepID=1

so weit, so gut.

Das Problem ist jetzt, dass sobald ich auf einen dieser parametrisierten Links geklickt habe, der Parameterteil "?queststepID=1" an all anderen Links dran gehangen wird!?!

Damit es klar wird:
Eigentlich sollte ein anderer Link so aussehen:
.../games/goToSomewhere.action
er wird aber dann so angezeigt:
.../games/goToSomewhere.action?queststepID=1
oder wenn ich auf einen link mit einem weiteren Parameter klicke sieht es so aus: (der falsche Parameter wird hintendran gehangen)
.../games/doIT.action?anotherID=2?queststepID=1

Das führt halt sehr oft zu Fehlerseiten.

Ich kann mir dieses Verhalten überhaupt nicht erklären und verstehe nicht woher bzw. warum der Parameter überall dran gehangen wird.

Kann mir da jemand helfen?

Schönen Gruß
oetzi


----------



## stareagle (5. Dez 2009)

Hallo,

ich erzeuge die Links folgendermaßen:

[XML]
<s:url action="example-action" var="exampleUrl">
   <saram name="exampleParam" value="param"/>
</s:url>
<a href="<sroperty value="exampleUrl"/>"
     title="<s:text name="urlTitle"/>">
  <s:text name="urlText"/>
</a>
[/XML]

Dein Problem habe ich mit dieser Variante bisher nicht beobachten können. Ich kann mich aber dunkel erinnern, dass ich ein ähnliches Problem hatte, als ich angefangen habe mich mit Struts 2 zu beschäftigen.

Gruß

Stareagle


----------



## ign0rant (6. Dez 2009)

In die struts.xml eintragen:

<constant name="struts.url.includeParams" value="none" />


----------



## oetzi (10. Dez 2009)

@ign0rant:
Jo, super! So eine Kleinigkeit mit so großen Auswirkungen... 
mhh, aber was bewirkt das denn jetzt genau? Ich meine, wird jetzt evtl. eine Funktionalität deaktiviert, die ich woanders brauchen könnte?

Und noch eine wichtige Sache diesbezüglich:
Wie soll man auf sowas kommen??  
Es gibt zwar viele Tutorials etc. die einem das normale Handling mit struts2 näher bringen, aber z.b. Infos, was man alles sinnvolles in der struts.xml einstellen kann, habe ich noch nicht gefunden.

Gibt es da versteckte Seiten, die google mir bis jetzt verweigert hat?





stareagle hat gesagt.:


> Hallo,
> 
> ich erzeuge die Links folgendermaßen:
> 
> ...



Hallo Stareagle,
danke für deine Antwort.
Leider bekomme ich folgendes um die Ohren geschmissen, wenn ich das var Attribute verwende:
>> Attribute var invalid for tag url according to TLD
Da obige Lösung allerdings zum Erfolg geführt hat, denke ich mal, dass es sich erledigt hat.


Schönen Gruß
oetzi


----------



## ign0rant (10. Dez 2009)

Hier ist das alles dokumentiert. Unter anderem steht da auch, dass man das includeParams Attribut im <s:url>-Tag überschreiben kann.


----------



## oetzi (11. Dez 2009)

Vielen Dank ign0rant!
Das hilft mir sicherlich beim nächsten Problem eher selbst auf die Lösung zu kommen 

Schönen Gruß
oetzi


----------

