2014-11-24 94 views
3

我有一個工具(說mytool.com)。當用戶登錄到工具中時,我想要使用有關用戶的信息(如他是哪個組的一部分)來顯示一些鏈接。如何在JSP中動態生成URL?

例如,用戶A登錄並且我知道用戶A將能夠在類別111中查看項目「abc」;所以我會在頁面上顯示一個鏈接,將用戶帶到該項目(類似mytool.com/items/111/abc)。

我的問題是如何在JSP中生成這些鏈接。當用戶登錄時,我打電話給一個服務以獲取他可以查看的類別和項目列表(本例中爲111和「abc」)。如何正確地將它轉換成JSP中的鏈接?

附加信息: 我想避免在JSP中使用Java代碼。我也使用Spring mvc。根據一些註釋,它看起來應該在控制器中生成url並將其放入模型中,然後讓JSP讀取它。這是否是正確的方法?

+1

它在這一點上只是基本的HTML。 – developerwjk 2014-11-24 21:28:34

+0

只需使用java代碼來生成html代碼的鏈接。循環訪問您的數據集,併爲您想要的每個鏈接創建一個鏈接標記。 – brso05 2014-11-24 21:29:23

+0

我應該在原始問題中提到這一點:我想避免在JSP中使用Java代碼。我也使用Spring mvc。我應該在控制器中生成url並將其放入模型中,然後讓JSP讀取它? – 2014-11-24 21:36:33

回答

4

您可以使用JSTL來實現這一點:如果你

@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

這正是我所期待的。謝謝! – 2014-11-25 18:54:28