Java 如何动态更新JSP页面上下文中设置的属性?
如果我错了,请纠正我。我正在开发一个用于学习的小型web应用程序。我有一个jsp,其中游戏中的顶级得分手列表将显示在一个表中。为此,我编写了一个ServletContextListener,在contextInitialized方法中,我在ContextScope中设置了一个AttributeLinedHashSet,这是游戏中排名前10的得分者列表。我认为可以使用EL访问它。但是如何更新此集合?您可以在此处使用request.getSession.getServletContext.getAttributeyour_attribute_name_,并可以访问LinkedHashSet,一旦获得它,您可以添加/删除/更新其中的值,然后再次将其设置回将更新的值,如request.getSession.getServletContext.setAttributeyour_attribute_attribute_name_,更新_LinkedHashSet;据我所知,使用EL可以访问它,但不能将更新后的值放回属性中Java 如何动态更新JSP页面上下文中设置的属性?,java,jsp,servlets,Java,Jsp,Servlets,如果我错了,请纠正我。我正在开发一个用于学习的小型web应用程序。我有一个jsp,其中游戏中的顶级得分手列表将显示在一个表中。为此,我编写了一个ServletContextListener,在contextInitialized方法中,我在ContextScope中设置了一个AttributeLinedHashSet,这是游戏中排名前10的得分者列表。我认为可以使用EL访问它。但是如何更新此集合?您可以在此处使用request.getSession.getServletContext.getAt
注意:在访问属性时,您需要显式类型转换。您可以更新属性,如:
<%((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>
我认为应该避免在JSP中使用java代码。这只是一个示例,您可以在servlet中更新它,如request.getServletContext.getAttributeset;并执行更新。