我正在oracle fusion中间件web app 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 components。
要在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" />
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}
use可以像这样使用groovy表达式
adf.context.sessionScope.itName