我有一个工具(比如mytool.com)。当用户登录该工具时,我想使用有关用户的信息(比如他所属的组)来显示一些链接。
例如,用户A登录并且我知道用户A将能够查看项目" abc"在第111类;所以我将在页面上显示一个链接,该链接将用户带到该项目(类似于mytool.com/items/111/abc)。
我的问题是如何在JSP中生成这些链接。当用户登录时,我调用服务以获取他可以查看的类别和项目列表(在这种情况下为111和" abc")。如何正确地将其转换为JSP中的链接?
其他信息: 我想避免在JSP中使用Java代码。我也在使用Spring mvc。基于一些注释,我看起来应该在控制器中生成url并将其放入模型中,然后让JSP读取它。这是正确的方法吗?
答案 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。