Frage

Was ist der richtige Weg, um einen Hyperlink in Spring + JSP zu erstellen? Es muss ein besserer Weg als nur Codierung im <a href="...">-Tag. Nehmen Sie zum Beispiel eine Seite, die Menschen zeigt. Die URL ist people.htm. Der entsprechende Controller bringt Menschen aus der Datenbank und führt optional Spaltensortierung. Die JSP könnte wie folgt aussehen:

<table>
<tr>
  <td><a href="people.htm?sort=name">Name</a></td>
  <td><a href="people.htm?sort=age">Age</a></td>
  <td><a href="people.htm?sort=address">Address</a></td>
</tr>
...

Dies scheint schlecht, wie die URL people.htm in der JSP fest einprogrammiert ist. Es soll eine Möglichkeit sein, hat Frühling automatisch den <a> Tag baut die URL in servlet.xml definiert.

Bearbeiten :. Vielleicht sollte ich eine Springform werden mit

War es hilfreich?

Lösung

Das einzige, was in den Sinn kommt, ist die JSTL Standard-Tag <c:url>. Zum Beispiel :

<c:url var="thisURL" value="homer.jsp">
  <c:param name="iq" value="${homer.iq}"/>
  <c:param name="checkAgainst" value="marge simpson"/>
</c:url>
<a href="<c:out value="${thisURL}"/>">Next</a>

Jetzt wird dies nicht Sie Servletzuordnung bekommen oder dergleichen, aber nichts wird. Es ist nicht etwas, das Sie wirklich programmatisch tun könnten (immerhin ein Servlet kann und in der Regel tut Karte auf eine Reihe von URLs). Aber das kümmert für Sie zu entkommen.

Andere Tipps

Ich habe nicht diese Art von Funktionalität in reinem Quell gesehen (obwohl grails bietet Dinge wie das).

Für Ihren speziellen Fall, dass Sie die Datei Teil betrachten zu entfernen und nur mit dem Query-String als href-Attribut:

<td><a href="?sort=name">Name</a></td>
<td><a href="?sort=age">Age</a></td>
<td><a href="?sort=address">Address</a></td>

Diese Links hängen Sie den Query-String an die Pfadkomponente der aktuellen URL.

Bessere Wege-Link zu erstellen ist:

<a href="<%=request.getContextPath() %>/people">Name</a>

<% = request.getContextPath ()%> stellt sicher, dass korrekte URI berücksichtigt werden.

„sort“ Parameter können Sie über mit verstecktem Feld bekommen und einen Wert mit einem wenig Javascript ändern:

<input type="hidden" name="sort" id="sort" value="name">

Und Controller-Methode soll wie folgt aussehen:

@RequestMapping("/people")
public String createUser(String sort) {

   ...

}

In Spring MVC in jsp:

Sie können mit:

Allgemeine Hyperlink:

<a href="/Portfolio/login">Click Here</a>

Wenn von der Steuerung übergeben:

<a href="/Portfolio/${page}">Click Here</a>

JSP-Tags

<c:url var="URL" value="login">
<c:param name="param" value="${parameter}"/>
</c:url>
<a href="<c:out value="${URL}"/>">Click Here</a>

Hoffe, es hilft ..:)

Importieren Sie dieses Paket in Ihrer JSP-Datei

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

Wenn Sie zB neue Seite oder URL verwenden Sie umleiten möchten.

<a href='<c:url value="url of next page" />'>Home</a>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top