如何更新JSP PageContext中动态设置的属性?

时间:2014-05-08 09:04:34

标签: java jsp servlets

如果我错了,请纠正我。我正在开发一个用于学习目的的小型Web应用程序。我有jsp,其中游戏中的最佳得分者列表将显示在表格中。为此,我写了一个ServletContextListener,并在contextInitialized()方法中,我在LinkedHashSet中设置了一个属性(ContextScope),这是游戏中前十名得分手的列表。我认为可以使用EL访问它。但是我该如何更新这个系列呢?

2 个答案:

答案 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>