java JSF / Xpages如何清除会话作用域?

a5g8bdjr  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(137)

我想清除xpages应用程序中的当前会话作用域并重新加载它们。我尝试过:

public Map<String, Object> sesScope;
this.sesScope = JSFUtil.getSessionScope();

clearMap(sesScope);

private void clearMap(Map<String, Object> map ){ // Get iterator for the keys
    String methodName = new Object(){}.getClass().getEnclosingMethod().getName();
    utils.printToConsole(this.getClass().getSimpleName().toString() + " " + methodName);
    utils.printToConsole("-------before removing------");
    utils.printToConsole(map.toString());

    Set keyset = map.keySet();
    Iterator itr = keyset.iterator();
    while (itr.hasNext()) {
        itr.next();
        itr.remove();
    }

    utils.printToConsole("--------After removing-------");
    utils.printToConsole(map.toString());
}

不知何故,我不能简单地说sesScope.clear(),因为这会导致一个错误:
发生在com.sun.faces.context.BaseContextMap.clear上的不支持操作异常(错误代码:392)
如何正确清除会话作用域?

goqiplq2

goqiplq21#

我这样做是为了清除sessionScope:

for (final String key : JSFUtil.getSessionScope().keySet()) {
    JSFUtil.getSessionScope().remove(key);
}

相关问题