如何在JSP中动态生成URL?
问题描述:
我有一个工具(说mytool.com)。当用户登录到工具中时,我想要使用有关用户的信息(如他是哪个组的一部分)来显示一些链接。如何在JSP中动态生成URL?
例如,用户A登录并且我知道用户A将能够在类别111中查看项目“abc”;所以我会在页面上显示一个链接,将用户带到该项目(类似mytool.com/items/111/abc)。
我的问题是如何在JSP中生成这些链接。当用户登录时,我打电话给一个服务以获取他可以查看的类别和项目列表(本例中为111和“abc”)。如何正确地将它转换成JSP中的链接?
附加信息: 我想避免在JSP中使用Java代码。我也使用Spring mvc。根据一些注释,它看起来应该在控制器中生成url并将其放入模型中,然后让JSP读取它。这是否是正确的方法?
答
您可以使用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
它在这一点上只是基本的HTML。 – developerwjk 2014-11-24 21:28:34
只需使用java代码来生成html代码的链接。循环访问您的数据集,并为您想要的每个链接创建一个链接标记。 – brso05 2014-11-24 21:29:23
我应该在原始问题中提到这一点:我想避免在JSP中使用Java代码。我也使用Spring mvc。我应该在控制器中生成url并将其放入模型中,然后让JSP读取它? – 2014-11-24 21:36:33