Domanda

Qual è il modo corretto di creare un collegamento ipertestuale in Spring + JSP? Deve esserci un modo migliore della semplice codifica nel tag <a href="...">. Prendi ad esempio una pagina che mostra le persone. L'URL è people.htm. Il controller corrispondente ottiene persone dal database ed esegue l'ordinamento opzionale delle colonne. Il JSP potrebbe apparire come:

<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>
...

Questo sembra negativo poiché l'URL <a> è codificato nel JSP. Dovrebbe esserci un modo per fare in modo che Spring costruisca automaticamente il tag servlet.xml usando l'URL definito in <=>.

Modifica : forse dovrei usare un modulo Spring.

È stato utile?

Soluzione

L'unica cosa che viene in mente è il tag standard JSTL <c:url>. Ad esempio :

<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>

Ora questo non ti farà mappare servlet o simili, ma niente lo farà. Non è qualcosa che potresti davvero fare a livello di codice (dopotutto, un servlet può e di solito si associa a una gamma di URL). Ma questo si occuperà di scappare per te.

Altri suggerimenti

Non ho visto questo tipo di funzionalità in primavera pura (anche se Grails offre cose del genere).

Per il tuo caso specifico potresti prendere in considerazione la rimozione della parte del file e l'utilizzo della stringa di query solo come attributo href:

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

Questi collegamenti aggiungono la stringa di query al componente path dell'URL corrente.

Il modo migliore per creare un collegamento è:

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

<% = request.getContextPath ()% > si assicura che l'URI corretto verrà preso in considerazione.

&

quot; quot sorta &; parametro che puoi superare con un campo nascosto e modificare un valore con un po 'di javascript:

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

E il metodo del controller dovrebbe apparire così:

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

   ...

}

In Spring MVC in jsp:

Puoi usare:

Collegamento ipertestuale generale:

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

Se si passa dal controller:

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

Tag JSP

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

Spero che aiuti .. :)

Importa questo pacchetto nel tuo file jsp

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

quando si desidera reindirizzare una nuova pagina o un URL, utilizzare ad es.

<a href='<c:url value="url of next page" />'>Home</a>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top