如果我错了,请纠正我。我正在开发一个用于学习目的的小型Web应用程序。我有jsp
,其中游戏中的最佳得分者列表将显示在表格中。为此,我写了一个ServletContextListener
,并在contextInitialized()
方法中,我在LinkedHashSet
中设置了一个属性(ContextScope
),这是游戏中前十名得分手的列表。我认为可以使用EL
访问它。但是我该如何更新这个系列呢?
答案 0 :(得分:0)
您可以使用request.getSession().getServletContext().getAttribute("your_attribute_name_here")
并可以访问LinkedHashSet,一旦获得它,您可以添加/删除/更新其中的值,然后再将其设置回来放置更新的值,如request.getSession().getServletContext().setAttribute("your_attribute_name_here", "update_LinkedHashSet");
尽我所能使用EL的知识可以访问它,但不能将更新后的值放回属性中。
注意:访问该属性时,您需要显式类型转换。
答案 1 :(得分:0)
您可以更新属性,如:
<%((Set<String>)pageContext.getServletContext().getAttribute("set")).add("Second"); %>
<% Set<String> set = (Set<String>) pageContext.getServletContext().getAttribute("set"); %>
from servlet context
<c:forEach items="${set}" var="s">
<c:out value="${s}"/>
</c:forEach>