Question

Comment créer un lien hypertexte dans Spring + JSP? Il doit exister un meilleur moyen que de simplement coder dans la balise <a href="...">. Prenons par exemple une page qui affiche des personnes. L'URL est people.htm. Le contrôleur correspondant récupère les utilisateurs de la base de données et effectue un tri facultatif des colonnes. Le JSP pourrait ressembler à:

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

Cela semble mauvais car l’URL <a> est codée en dur dans le fichier JSP. Il devrait y avoir un moyen de faire en sorte que Spring crée automatiquement la balise servlet.xml en utilisant l’URL définie dans <=>.

Modifier : je devrais peut-être utiliser un formulaire Spring.

Était-ce utile?

La solution

La seule chose qui me vienne à l’esprit est la balise standard JSTL <c:url>. Par exemple :

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

Désormais, cela ne vous donnera pas le mappage de servlets ou autres, mais rien ne se produira. Ce n'est pas quelque chose que vous pouvez vraiment faire par programme (après tout, une servlet peut et correspond généralement à une plage d'URL). Mais cela va prendre soin de vous échapper.

Autres conseils

Je n'ai pas vu ce genre de fonctionnalité dans le printemps pur (bien que Grails offre des choses comme ça).

Dans votre cas, vous pouvez envisager de supprimer la partie du fichier et d'utiliser uniquement la chaîne de requête en tant qu'attribut 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>

Ces liens ajoutent la chaîne de requête au composant de chemin de l'URL actuelle.

La meilleure façon de créer un lien est:

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

<% = request.getContextPath ()% > s'assure que l'URI correct sera pris en compte.

& "trier &"; paramètre que vous pouvez surmonter avec un champ caché et modifier une valeur avec un peu de javascript:

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

Et la méthode du contrôleur devrait ressembler à ceci:

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

   ...

}

Au printemps MVC dans jsp:

Vous pouvez utiliser:

Hyperlien général:

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

Si vous passez du contrôleur:

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

balises Jsp

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

J'espère que ça vous aidera ..:)

Importez ce package dans votre fichier jsp

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

lorsque vous souhaitez rediriger une nouvelle page ou une nouvelle URL, utilisez par exemple

.
<a href='<c:url value="url of next page" />'>Home</a>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top