Pregunta

¿Cuál es la forma correcta de crear un hipervínculo en Spring + JSP? Debe haber una mejor manera que simplemente codificar en la etiqueta <a href="...">. Tomemos, por ejemplo, una página que muestra personas. La URL es people.htm. El controlador correspondiente obtiene personas de la base de datos y realiza una clasificación de columna opcional. El JSP podría verse así:

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

Esto parece malo ya que la URL <a> está codificada en el JSP. Debería haber una manera de hacer que Spring construya automáticamente la etiqueta servlet.xml utilizando la URL definida en <=>.

Editar : Tal vez debería estar usando un formulario Spring.

¿Fue útil?

Solución

Lo único que viene a la mente es la etiqueta estándar JSTL <c:url>. Por ejemplo :

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

Ahora esto no le dará mapeo de servlet o similar, pero nada lo hará. No es algo que realmente pueda hacer mediante programación (después de todo, un servlet puede y generalmente se asigna a un rango de URL). Pero esto se encargará de escapar por ti.

Otros consejos

No he visto este tipo de funcionalidad en primavera pura (aunque Grails ofrece cosas así).

Para su caso específico, puede considerar eliminar la parte del archivo y solo usar la cadena de consulta como atributo 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>

Estos enlaces agregan la cadena de consulta al componente de ruta de la url actual.

La mejor manera de crear un enlace es:

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

<% = request.getContextPath ()% > se asegura de que se tenga en cuenta el URI correcto.

" ordenar " parámetro que puede superar con el campo oculto y cambiar un valor con un poco de javascript:

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

Y el método del controlador debería verse así:

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

   ...

}

En Spring MVC en jsp:

Puedes usar:

Hipervínculo general:

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

Si pasa del controlador:

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

Etiquetas Jsp

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

Espero que ayude .. :)

Importa este paquete en tu archivo jsp

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

cuando desee redirigir una nueva página o url, úsela, por ejemplo, para

<a href='<c:url value="url of next page" />'>Home</a>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top