java如何检查具有动态名称的参数/集合是否存在?
在我的控制器中,我向模型中添加了动态属性,如:
model.addAttribute("message"+singleMessage.getId()+"comments", messageComments);
所以在我的jsp视图中,我有一些集合,比如message1comments、message7comments、message457comments等等
现在,当我查看messages collection时,当我显示一条id为19的消息时,我想通过检查诸如“message19comments”这样的属性/集合是否存在来检查它是否有任何注释
问题是:怎么做?我不知道如何构造这样一个名称,并检查是否存在使用此名称的参数。我试过:
<c:if test="${not empty "message"+message.id+"comments"}>
还有其他一些事情,但都没用。当我打印的时候
${requestScope}
我可以看到所有这些评论集。但我如何检查动态生成的名称是否存在
# 1 楼答案
通过提供消息ID,
Map<messageId, listOfComments>
可以让您轻松地回忆与任何消息相关联的注释列表,因此您可以尝试在模型中放置一个映射,如下面的代码示例所示(使用数据类型进行调整):然后,在JSP中,您可以调用取消消息ID的注释列表:
另见Get value from hashmap based on key to JSTL了解更多信息