我有一种情况,我在一个页面的会话中设置一个图像的链接,在另一个页面上访问,这里是设置的地方:
<c:set var="<%item.getCatalogEntryId()%>FTImage" value="${item.field5}" scope="session"/>
我无法将此信息用于第二页,我想做类似的事情,但语法显然是关闭的,我不知道如何正确地执行此操作
<c:set var="CartImage" value="${sessionScope.${itemCatentryId}FTImage}"></c:set>
catalogEntryId在两个页面之间是通用的,我只需要知道在从会话中检索变量时如何包含它
感谢您的帮助
答案 0 :(得分:0)
试试这个。我认为它会起作用
<c:set var="CartImage" value="${sessionScope.[itemCatentryId]FTImage}"></c:set>
答案 1 :(得分:0)
这是不可能的。我认为您的问题的解决方案是使用一个Map,其中包含catalogEntryId
作为键,item
作为值。如果您的servlet /控制器中有itemList
,您可以使用以下内容将其转换为map:
// Servlet.
request.setAttribute("itemMap", itemList.stream().collect(Collectors.toMap(i-> String.valueOf(i.getCatalogEntryId()) + "FTImage", Function.identity())));
// Spring MVC Controller.
modelAndView.addObject("itemMap", itemList.stream().collect(Collectors.toMap(i-> String.valueOf(i.getCatalogEntryId()) + "FTImage", Function.identity())));
因此,您可以在视图中使用此地图,并从地图中获取动态密钥,如上所述:
<c:set var="CartImage" value="${itemMap.get(item.getCatalogEntryId()+'FTImage')}" value="${your value}"></c:set>