2015-11-19 68 views
-1

我试图将一个bean从一个servlet重定向到一个jsf页面。这是一个学校项目,我曾请教过我的教授,他提供了以下代码作为解决方案。我看到它在我的项目中完美运行,但在他的机器上运行,因为我已经去他的办公室寻求帮助。现在我回家了,我在项目中添加了相同的四行代码,但没有重定向到.xhtml页面。无法将bean从servlet重定向到jsf .xhtml页面

调试显示它在ExternalContext行失败。另外,捕捉异常时,堆栈跟踪只会显示“null”。我不明白为什么我的项目,与我在教授计算机上看到的相同的代码无法正常工作。大声笑。

getServletContext().setAttribute("bean", myBean); 
FacesContext facesContext = FacesContext.getCurrentInstance(); 
ExternalContext externalContext = facesContext.getExternalContext(); //failing here 
externalContext.redirect("myJSPPage.xhtml"); 

回答

0

FacesContext只有当FacesServlet正在控制当前请求存在,否则FacesContext.getCurrentInstance()将返回null。如果代码在JSF托管bean中的方法中执行,此代码将起作用。所以,也许你只是复制这些代码并将其粘贴到自定义的servlet中。

+0

嗯,谢谢。我看到它正常工作。有什么我需要在我的web.xml文件或持久性单元中设置?我让我的教授通过电子邮件从他的机器上修改和运行代码,但是当我尝试在我的机器上运行它时,同样的问题。我没有检查我的XML文件,并且一切都是一样的。 IDK – user3657834