【问题标题】:How to store and fetch value from session in java class adf 12c如何在 java 类 adf 12c 中的会话中存储和获取值
【发布时间】:2019-02-22 13:06:34
【问题描述】:

我正在 oracle fusion 中间件 web 应用程序 adf 12c 中编写一个 java 类。 我想知道如何在 java 类函数中的 session 和 cookie 中存储值,并从 .jsf 页面上的 session 中获取值。 例如这里是java类函数。

public String it_name() {

  //want to store this itName in session and cookie    
  String itName = "OracleIT";    
  return itName;

}

记住要从 .jsf 页面 adf faces 组件上的会话中获取值。

【问题讨论】:

    标签: jsf


    【解决方案1】:

    要在 Session 中存储变量,您可以使用以下 JSFUtils 函数:

    /**
    * Convenience method for setting Session variables.
    * @param key object key
    * @param object value to store
    */
    
    public static void storeOnSession(String key, Object object) {
        FacesContext ctx = FacesContext.getFacesContext();
        Map sessionState = ctx.getExternalContext().getSessionMap();
        sessionState.put(key, object);
    }
    

    在你的情况下:

    // Java file
    public String it_name() {
        String itName = "OracleIT";   
        storeOnSession("itName",itName)
        return itName;
    }
    
    //JSF : 
    <af:outputText value="${sessionScope.itName}" id="pt_ot1" />
    

    【讨论】:

    • 还请告诉我如何从另一个 bean 类的会话中检索值? ,如何销毁会话和cookie?以及如何从 cookie 中存储和获取值?
    • 文档没有解决我的问题,可以在这里写下解决方法吗?
    【解决方案2】:
    FacesContext context = FacesContext.getCurrentInstance();
            HttpSession session = (HttpSession) 
            context.getExternalContext().getSession(true);
            session.setAttribute("itName ", "oracleIT");
            Map aDFContext = ADFContext.getCurrent().getSessionScope();
        System.err.println("itName:"+aDFContext.get("itName").toString());
    

    使用可以像这样使用EL

     #{sessionScope.itName}
    

    使用可以像这样使用 groovy 表达式

    adf.context.sessionScope.itName
    

    【讨论】:

    • 也请告诉我如何在 cookie 中存储价值?以及如何销毁会话和cookie值
    猜你喜欢
    • 2023-02-14
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 2016-08-24
    • 2014-09-13
    • 2015-02-26
    • 1970-01-01
    • 2019-05-02
    相关资源
    最近更新 更多