문제

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

   ...

}

JSP의 스프링 MVC에서 :

당신이 사용할 수있는:

일반 하이퍼 링크 :

<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