Как создать гиперссылку в Spring + JSP - PullRequest
4 голосов
/ 07 января 2009

Как правильно создать гиперссылку в 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.

Ответы [ 5 ]

5 голосов
/ 07 января 2009

Единственное, что приходит на ум, - это стандартный тег 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-адресов). Но это поможет вам сбежать.

3 голосов
/ 07 января 2009

Я не видел такого рода функциональности в чистой весне (хотя 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.

1 голос
/ 04 мая 2017

Весной 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>

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

1 голос
/ 06 апреля 2014

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

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

   ...

}
0 голосов
/ 12 апреля 2015

Импорт этого пакета в ваш jsp файл

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

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

<a href='<c:url value="url of next page" />'>Home</a>
...