Setzen Sie einen href-link in einer Struts2-tag gesetzt
Möchte ich ein Anker-tag in einer Struts2 variable, dann kann ich das display an verschiedenen stellen in einer JSP. So kann ich vermeiden, duplizieren der komplizierte wenn/dann-Anweisungen werden verwendet, um verschiedene Formen des href-tag.
Ich bin mit dem Struts 's:setzen Sie die' tag, dies zu tun.
Das problem ist, dass Streben konvertiert '<' Zeichen zu htmlentities und wenn die Seite angezeigt wird, sehe ich die eigentliche "a href=someURL" - tag angezeigt, nicht funktionierender link.
Wenn ich die "escape='true'" argument s:setzen Sie die gleiche Sache, nur zeigt es die htmlentities für den '<' und '>', tags.
Wie bekomme ich einen gültigen Anker-tag in einer Struts2 variable und dann zeigt es wie einen funktionierenden link?
Hier ist, was ich Tue:
<s:set name="composerName">
<s:property value="'a href=%{viewRecordURL}>'" escape="false"/>
<s:property value="#composer.title" />
<s:property value="#composer.firstName" />
<s:property value="#composer.lastName" />
<s:property value="'</a>'" escape="false" />
</s:set>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
s:url
erstellen Sie eine gültige url ein, und verwenden Sie dann ins:a
zu generieren Sie den link.Finden Sie den link unten für mehr details:
http://struts.apache.org/2.1.8/docs/a.html
<s:a>
, obwohl, es sei denn, Sie verwenden es für eine Ajax-Anfrage.dies tun die Möglichkeit auf einfache Weise den link in Struts2
//hinzufügen der Struts2 action href
Dies ist nicht, wie Sie wollen, es zu bauen-was Sie haben sind zwei unterschiedliche Dinge, eine URL und den text-string der url. Die URL, die Sie bereits haben. Verwenden Sie nur
<s:set>
für den link-text.Wenn Sie wirklich müssen, können Sie wrap up in eine JSP-basierte custom-Tags, aber ich würde das nicht stören.
<c:set>
. Ich weiß nicht wirklich verstehen, was du tust, und ich bin noch nicht überzeugt, dass dies ein guter Weg, es zu tun--das riecht nach zu viel Logik in der Sicht so weit.Werde ich die Antwort auf meine eigene Frage. Vielleicht hat jemand eine elegantere Lösung. Noch einmal, wir versuchen es hinzubekommen, dass sowohl ein Anker-tag und die url in ein s:setzen Sie die variable. Die Themen waren: 1) erste s:set zur Behandlung der tag-string als Zeichenkette und nicht ein Objekt (die es will, zu Holen aus ActionContext oder irgendwo), und 2) ausschalten der Flucht, so dass der string-text der anchor-tag nicht umgewandelt htmlentities wie '& lt;'.
Für 1, ich setze die var auf null, aber eine Standard-argument, das s: - Eigenschaft immer behandelt wie eine wörtliche Zeichenfolge.
Für #2, es ist nur eine Frage der escape="false" an den richtigen stellen.
Leider den string eingebaut werden, mit separaten bits von s:Eigentum, aber was kann man tun?
Ich habe es noch nicht getestet aber mit UTF-8-Zeichen oder möglicherweise problematischen Zeichen wie '&', Apostroph oder einfaches Anführungszeichen in der #Komponist Teil.
Wir können mit url-Tags zu erstellen, die URL wie erwähnt unten
id
ist veraltet, verwenden Sievar
statt.