Reihenfolge von URL-Parametern in jspx ändern?

Z

Zak256

Hallo mal wieder,

meine Probleme wollen nicht enden. Nun kann ich meine URL-Parameter schön weiterverwenden und sie werden auch brav übergeben. Wenn ich jedoch rekursiv jspx-Seiten include und jedesmal einen weiteren Parameter übergebe, wird dieser vor den anderen einsortiert. Bei der Weiterverarbeitung benötige ich sie aber in der umgekehrten Reihenfolge.

Konstruiertes Beispiel: include.jspx (aufgerufen durch eine andere Seite, in der die Variable count initialisiert wird)
Code:
<c:set var="wert" value="${param.val} />
<c:if test="${count &gt; 0}>
   <c:set var="wert" value="${wert}X" />
   <jsp:include page="rekursiv.jspx?val=${wert}&count=${count-1}" />
</c:if>
Der Parameter "val" wird nicht überschrieben, sondern jeweils ergänzt, ich habe also nach 3 Durchgängen davon folgende Wertepaare: val=XX&val=X&val=

Diese Werte lese ich dann in einer <c:forEach>-Schleife aus und hier bräuchte ich sie eigentlich in der umgekehrten Reihenfolge, also zuerst val= dann val=X und schließlich val=XX.

Kann man die Parameter-Variable "param" irgendwie manipulieren und entweder Werte daraus löschen oder die Reihenfolge ändern? Alternativ wäre es hilfreich, wenn ich die Werte in anderer Reihenfolge weiterverarbeiten könnte. Geht das ohne großartige Code-Kunststücke?
Oder gibt es eine andere Möglichkeit derartiges zu bewerkstelligen?

Danke.
 
Sorry, aber sowas macht man nicht in einer JSP. Ich wollte schon bei deienem letzten Post was dazu schreiben ;). Wenn du komplexe Logik hast ist ein Servlet wohl das richtigere Mittel der Wahl.

Gruß
Ollie
 
Nichts zu entschuldigen ;) Ich bin ja gerne für alternative Vorschläge offen.

Ich habe in meiner Seite eine Kapitelstruktur mit unbestimmter Tiefe (gekennzeichnet durch jeweils eine Zahl). In Kapiteln enthalten können dann nochmal weitere Bereiche sein, die (beliebig viele) Unterbereiche enthalten können (gekennzeichnet durch jeweils einen Text).

Das Problem(?) ist, dass ich einen solchen Bereich in so einer Weise referenzieren möchte, dass man ihn direkt verlinken und etwa als Lesezeichen im Browser speichern können soll. Ein oder mehrere URL-Parameter erscheinen mir dazu die einzige Möglichkeit.

Mir fällt zur Lösung höchstens noch ein, dass ich diese Hierarchie in einem Servlet in einer eindeutigen ID codieren könnte. Die Implementierung dazu und entsprechende Anpassungen im Code würden momentan jedoch leider zuviel Zeit kosten die ich nicht habe :(

Momentan habe ich es erstmal so gelöst, dass bei jedem rekursiven include-Befehl ein leerer Parameter am Ende hinzugefügt wird, der als End-Symbol interpretiert wird, so dass die bereits gespeicherten Parameter nicht eingelesen werden. Vor dem leeren Parameter füge ich dann alle benötigten Werte noch einmal in der richtigen Reihenfolge hinzu.
Ich weiss... es ist keine schöne Lösung, da ich aber momentan wie gesagt unter Zeitdruck stehe, werde ich es vorläufig wohl so belassen. (Es sei denn mir sagt jemand, wie ich es in kurzer Zeit besser implementieren könnte.)

Danke und Gruß,
Zak
 
Hmm... muss ich mal drüber nachdenken und bei einer Reimplementierung in Betracht ziehen. Man müsste dann jedoch auch eine Unterscheidung zwischen Kapiteln und Bereichen festlegen und überall ein Prefix anhängen, z.B. http://foo/kap1/kap8/kap12/berMein+...eich/berMit+S&amp;&gt;&lt;nderzeichen,+und+so ...
Nur durch http://foo/kapitel/1/8/bereich/A/B/C ja nicht unterschieden werden, ob "bereich" nicht vielleicht schon ein Bereich ist, der "bereich" heisst... oder "8" vielleicht schon ein Bereich mit dem Titel "8" ist...
 
Sicher, allerdings identifizieren URLs laut dem REST Architekturprinzip Resourcen. Dabei ist natürlich eine gewisse Granularität notwendig. Ist es zum Beispiel notwendig, Bereiche nochmal zu hierarchisieren? Ist es sinnvoll fachliche Werte (die Bereichsnamen) in der URL zu haben?

URL Design ist eine komplexe Sache, allerdings auch hochgradig überschätzt (v.a. wenn man en API für einen maschinellen Client schreibt, also keinen Browser). Wichtig ist, dass die URL die Resource identifiziert und möglichst permanent bleibt. Lesbarkeit ist zwar nett, aber nicht unbedingt notwendig solange ich die URL kopieren kann, einem Kollegen per Mail schicken und sie für ihn immer noch funktioniert.

Kurzum, die zwei wichtigen Fragen:
1) Müssen die Bereiche wirklich nochmal hierarchisiert werden?
2) Geht nicht auch einfach die Bereichs ID anstelle des Titels?

Gruß
Ollie
 
Kurzum, die zwei wichtigen Fragen:
1) Müssen die Bereiche wirklich nochmal hierarchisiert werden?
2) Geht nicht auch einfach die Bereichs ID anstelle des Titels?
zu 1) Ja. "Bereich" ist eigentlich auch nicht das richtige Wort, aber das ganze Konzept und die Idee meiner Seite (Teil meiner Diplomarbeit) zu erklären würde hier wohl zu weit führen.

zu 2) Ich habe auch schon darüber nachgedacht, jedem "Bereich" eine generierte ID zuzuweisen. Da müsste ich mich dann aber auch wieder einlesen, wie so etwas funktioniert damit ich auch sicher sein kann, dass die eindeutig sind und beim Bearbeiten der Inhalte keine Probleme auftreten... Prinzipiell sollte die Referenzierung über den Titel ja auch funktionieren.

Danke auf jedenfall für die Hinweise.
Zak
 

Neue Beiträge

Zurück