2014-11-24 3 views
3

도구가 있습니다 (mytool.com). 사용자가 도구에 로그인하면 일부 링크를 표시하기 위해 사용자의 정보 (사용자가 속한 그룹과 같은)를 사용하려고합니다.JSP로 동적으로 URL을 생성하는 방법은 무엇입니까?

예를 들어, 사용자 A가 로그인하고 사용자 A가 카테고리 111에서 항목 "abc"를 볼 수 있음을 알고 있습니다. 그래서 나는 그 항목 (mytool.com/items/111/abc와 같은 것)으로 사용자를 안내 할 링크를 페이지에 표시 할 것이다.

제 질문은 어떻게 JSP로 이러한 링크를 생성합니까입니다. 사용자가 로그인하면 내가 볼 수있는 범주 및 항목 목록 (이 경우 111 및 "abc")을 얻기 위해 서비스를 호출합니다. 어떻게 그것을 JSP의 링크로 올바르게 변환합니까?

추가 정보 : JSP로 Java 코드를 사용하지 않으려합니다. 나는 또한 봄 mvc를 사용하고있다. 몇 가지 의견을 기반으로 컨트롤러에 URL을 생성하고 모델에 넣은 다음 JSP로 읽어야하는 것처럼 보입니다. 그게 올바른 방법일까요?

+1

그 시점에서의 기본적인 HTML입니다. – developerwjk

+0

자바 코드를 사용하여 링크를 HTML 코드로 생성하십시오. 데이터 세트를 반복하고 원하는 각 링크에 대한 링크 태그를 만듭니다. – brso05

+0

나는 원래의 질문에서 이것을 언급해야만한다 : 나는 JSP로 자바 코드를 피하고 싶다. 나는 또한 봄 mvc를 사용하고있다. 내가 컨트롤러에서 URL을 생성하고 모델에 넣은 다음 JSP에서 읽어야합니까? –

답변

4

당신이 달성하기 위해 JSTL을 사용할 수 있습니다 : 당신이 경우 Incase의

@RequestMapping(value = "/items/{category}/{name}", method=RequestMethod.GET) 
    public String getItem(@PathVariable("category") String category, @PathVariable("name") String name){ 
    String productname= name; 
    String category=category; 
    //Do your stuff 
    } 

:

당신의 JSP 전화 :

List<Product> products=getProductFromDB(); 
    request.setAttribute("products", products);//List of products 

JSP를 :

<table> 
<c:foreach items="${products}" var="product"> 
    <tr> 
     <td> 
      <a href="${pageContext.request.contextPath}/items/${product.category}/${product.name}">${product.name}</a> 
     <td> 
    </tr> 
</c:foreach> 
</table> 

봄 컨트롤러 익숙하지 않다. JSTL, here을보십시오.

+0

이것은 내가 찾고있는 것입니다. 고맙습니다! –

관련 문제