Pat*_*ten 2 java jsf session-scope xpages
我想清除 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());
}
Run Code Online (Sandbox Code Playgroud)
不知怎的,我不能简单地说 sesScope.clear() 因为这会导致错误:
com.sun.faces.context.BaseContextMap.clear(ExternalContextImpl.java:392) 处的 java.lang.UnsupportedOperationException
如何正确清除会话范围?
我这样做是为了清除 sessionScope:
for (final String key : JSFUtil.getSessionScope().keySet()) {
JSFUtil.getSessionScope().remove(key);
}
Run Code Online (Sandbox Code Playgroud)