Вопрос

Как правильно создать гиперссылку в Spring+JSP?Должен быть лучший способ, чем просто кодирование в <a href="..."> ярлык.Возьмем, к примеру, страницу, на которой отображаются люди.URL-адрес people.htm.Соответствующий контроллер получает людей из базы данных и выполняет дополнительную сортировку столбцов.JSP может выглядеть так:

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

Это кажется плохим, поскольку URL-адрес people.htm жестко закодирован в JSP.Должен быть способ заставить Spring автоматически создавать <a> тег, используя URL-адрес, определенный в servlet.xml.

Редактировать:Возможно, мне следует использовать форму Spring.

Это было полезно?

Решение

Единственное, что приходит на ум, - это стандартный тег JSTL <c:url>. Например, :

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

Теперь это не даст вам отображение сервлета или тому подобное, но ничего не получится. Это не то, что вы действительно могли бы сделать программно (в конце концов, сервлет может и обычно сопоставляет диапазон URL-адресов). Но это поможет вам сбежать.

Другие советы

Я не видел такой функциональности в чистой весне (хотя Grails предлагает такие вещи).

В вашем конкретном случае вы можете рассмотреть возможность удаления части файла и использовать только строку запроса в качестве атрибута 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>

Эти ссылки добавляют строку запроса к компоненту пути текущего URL.

Лучший способ создать ссылку:

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

<%=request.getContextPath() %> гарантирует, что правильный URI будет принят во внимание.

Параметр «сортировка» вы можете обойти скрытым полем и изменить значение с помощью небольшого количества JavaScript:

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

И метод контроллера должен выглядеть так:

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

   ...

}

В Spring MVC в jsp:

Вы можете использовать:

Общая гиперссылка:

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

При переходе от контроллера:

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

JSP теги

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

Надеюсь, это поможет ..:)

Импортируйте этот пакет в ваш файл JSP

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

если вы хотите перенаправить новую страницу или URL, используйте, например,

<a href='<c:url value="url of next page" />'>Home</a>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top