2016-03-04 70 views
0

在下面学习的代码是一个学习情况,我希望当我运行下面的代码,我可以原样保存到HTTP会话在HttpSession中存放的扩展对象

learning = new Learning(learningContext); 
HttpSession webSession = request.getSession(); 
webSession.setAttribute("learning", learning); 
Learning learnTest = webSession.getAttribute("learning"); 

Incompatible types 
Learning learnTest = webSession.getAttribute("learning")  
required: Learning 
found: Object 

我可以将非通用对象保存到会话吗?是否有另一种方法来实现这一目标?

+0

您是否尝试过类似的ToString()或浇注的任何变通办法? –

回答

3

你需要投的对象这样的 -

Learning learnTest = (Learning) webSession.getAttribute("learning") 

你需要转换为特定类型的getAttribute的返回类型为对象。

+0

谢谢,绝对java初学者,这个工程。 – Skarlinski

1

HttpSession.getAttribute的Javadoc说:

java.lang.Object中的getAttribute(java.lang.String中的名字) 返回此会话使用指定的名称绑定的对象,或者为null如果没有对象是绑定以...之名。

我意味着施工它总是会返回一个纯粹的对象。正如你所知道(或希望)你已经把一个Learning那里,你就必须做一个明确的转换:

Learning learnTest = (Learning) webSession.getAttribute("learning");