【发布时间】:2018-03-06 17:18:39
【问题描述】:
我有两个 jsf 页面(home.jsf 和 employees.jsf), 主页有一个导航到员工页面的按钮, 导航时我将值存储在会话范围内 在(托管 bean)
public void putSessionAL(ActionEvent actionEvent) {
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("key","value");
}
public String navigate() {
return "employees";
}
我想根据使用以下 groovy 表达式在会话中存储的值从 UIHints 选项卡更改员工 viewObject 的标签
adf.context.sessionScope.key
并将trustMode更改为trusted,但会引发以下异常
oracle.jbo.script.ExprScriptException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-25188. Error message parameters are {0=Employees.FirstName, 1=, 2=oracle.jbo.script.ExprSecurityException}
at oracle.jbo.script.ExprScriptException.throwException(ExprScriptException.java:316)
at oracle.jbo.script.ExprScriptException.throwExceptionWithExprDef(ExprScriptException.java:387)
at oracle.jbo.ExprEval.processScriptException(ExprEval.java:599)
at oracle.jbo.ExprEval.doEvaluate(ExprEval.java:697)
at oracle.jbo.ExprEval.evaluate(ExprEval.java:508)
at oracle.jbo.ExprEval.evaluate(ExprEval.java:487)
at oracle.jbo.common.NamedObjectImpl.resolvePropertyRaw(NamedObjectImpl.java:680)
at oracle.jbo.server.DefObject.resolvePropertyRaw(DefObject.java:366)
【问题讨论】:
-
为什么不在 RequestScope 中将 bean 链接到 home.jsf,这样您就可以从 bean 而不是从会话中获取employee.jsf 中的值。 (图 21-3 范围和页面流之间的关系:docs.oracle.com/cd/E15051_01/web.1111/b31974/…)。如果不是与用户相关的非关键数据,则必须避免在会话中存储。您确定在会话中存储是正确的方法吗?
-
是的,我希望将数据存储在 session 中。它与用户有关。我可以使用表达式#{sessionScope.key} 从页面属性中更改它,但是在我需要从 viewObject 处理一次的每个页面上更改它们需要时间
标签: jsf oracle-adf session-scope