Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java facesContext.getExternalContext().getRequest().getSession()的返回对象是什么类?_Java_Xpages_Lotus Domino_Xpages Ssjs - Fatal编程技术网

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

Java facesContext.getExternalContext().getRequest().getSession()的返回对象是什么类?,java,xpages,lotus-domino,xpages-ssjs,Java,Xpages,Lotus Domino,Xpages Ssjs,当尝试在XPage()上的SSJS中获取会话时,前面的类型只会到达getSession() 我可以看到getSession()调用返回一个标准的java.lang.Object,这解释了为什么前面的类型beyondgetSession()只显示java.lang.Object类的道具/方法 但是,如果您继续并调用getId()方法,如上面的链接所述,那么您可以保存XPage,它将毫无问题地运行 这很好,但是如果我想在Java中进行相同的调用,代码将不会编译,因为正如上面提到的SSJS,返回的对象

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

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

但是,如果您继续并调用
getId()
方法,如上面的链接所述,那么您可以保存XPage,它将毫无问题地运行

这很好,但是如果我想在Java中进行相同的调用,代码将不会编译,因为正如上面提到的SSJS,返回的对象是标准的
Java.lang.object
,并且没有名为
getId()
的方法


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

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

如果需要知道对象所属的类,只需将
.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();

lcdadapterthttpsession
实现
javax.servlet.http.HttpSession
代码
facesContext.getExternalContext().getRequest().getSession()
返回类
com.ibm.designer.runtime.domino.adapter.servlet.lcdapterthttpsession

如果需要知道对象所属的类,只需将
.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();

lcdadapterthttpsession
实现了
javax.servlet.http.HttpSession

谢谢Naveen。所以问题是,在Java中,'getSession(boolean)'返回Java.lang.Object,它不允许我访问会话的方法('getId()'等)。所以我的问题是,我需要将返回对象强制转换到哪个类?您提到的类和包(com.ibm.designer.runtime.domino)在使用Java设计元素时似乎不可用。@lee_mcmullen:更新了我的答案以包含代码段。另外,请尝试将代码
facesContext.getExternalContext().getRequest().getSession().getClass().getName()
放在计算字段中,以查看它打印的是哪个类。我认为重要的是要强调,对于开发人员来说,实际实现是什么并不重要(
lcdadapterthttpsession
),您应该转换到
javax.servlet.http.HttpSession
。谢谢Naveen。所以问题是,在Java中,'getSession(boolean)'返回Java.lang.Object,它不允许我访问会话的方法('getId()'等)。所以我的问题是,我需要将返回对象强制转换到哪个类?您提到的类和包(com.ibm.designer.runtime.domino)在使用Java设计元素时似乎不可用。@lee_mcmullen:更新了我的答案以包含代码段。另外,请尝试将代码
facesContext.getExternalContext().getRequest().getSession().getClass().getName()
放在计算字段中,以查看它打印的是哪个类。我认为重要的是要强调,对于开发人员来说,实际实现是什么并不重要(
lcdadapterthttpsession
),您应该转换到
javax.servlet.http.HttpSession
。我想从开始,但我不确定。我想从开始,但我不确定。