gpt4 book ai didi

java - facesContext.getExternalContext().getRequest().getSession() 的返回对象是什么类?

转载 作者:行者123 更新时间:2023-11-29 06:38:59 24 4
gpt4 key购买 nike

当尝试在 XPage ( as explained here ) 上获取 SSJS 中的 Session 时,前面的类型只会达到 getSession()

我可以看到 getSession() 调用返回一个标准的 java.lang.Object,这解释了为什么前面的类型超出了 getSession() 仅显示 java.lang.Object 类的 Prop /方法。

但是,如果您继续并调用 getId() 方法,如上面链接中所述,那么您可以保存 XPage 并且它会正常运行。

很好,但是如果我想在 Java 中进行相同的调用怎么办,代码将无法编译,因为正如上面针对 SSJS 所述,返回的对象是标准的 java.lang.Object 并且没有名为 getId() 的方法。

因此我可以强制转换返回的对象以允许我访问 session 方法吗?如果是这样,我应该将其转换到哪个类(class)?

最佳答案

代码 facesContext.getExternalContext().getRequest().getSession() 返回类 com.ibm.designer.runtime.domino.adapter.servlet.LCDAdapterHttpSession .

如果您需要知道对象属于哪个类,只需向其添加 .getClass().getName() 即可。所以你的代码是 - facesContext.getExternalContext().getRequest().getSession().getClass().getName()

在 Java 中你必须这样写

import javax.faces.context.FacesContext;
// import com.ibm.designer.runtime.domino.adapter.servlet.LCDAdapterHttpSession;
import javax.servlet.http.HttpSession;
...
...
// LCDAdapterHttpSession s = (LCDAdapterHttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true);
HttpSession s = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true);
return s.getId();

LCDAdapterHttpSession 类实现了 javax.servlet.http.HttpSession

关于java - facesContext.getExternalContext().getRequest().getSession() 的返回对象是什么类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15273518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com