如何在JSP中动态生成URL?

时间:2014-11-24 21:25:44

标签: java jsp servlets

我有一个工具(比如mytool.com)。当用户登录该工具时,我想使用有关用户的信息(比如他所属的组)来显示一些链接。

例如,用户A登录并且我知道用户A将能够查看项目" abc"在第111类;所以我将在页面上显示一个链接,该链接将用户带到该项目(类似于mytool.com/items/111/abc)。

我的问题是如何在JSP中生成这些链接。当用户登录时,我调用服务以获取他可以查看的类别和项目列表(在这种情况下为111和" abc")。如何正确地将其转换为JSP中的链接?

其他信息: 我想避免在JSP中使用Java代码。我也在使用Spring mvc。基于一些注释,我看起来应该在控制器中生成url并将其放入模型中,然后让JSP读取它。这是正确的方法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用JSTL来实现此目的:

调用你的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>

Spring Controller:

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

如果您不熟悉JSTL,请查看here