Java 无法将bean从servlet重定向到jsf.xhtml页面

Java 无法将bean从servlet重定向到jsf.xhtml页面,java,jsf,servlets,jsf-2,Java,Jsf,Servlets,Jsf 2,我试图将bean从servlet重定向到jsf页面。这是一个学校项目,我向我的教授寻求帮助,他提供了以下代码作为解决方案。我看到它在我的项目中完美运行,但在他的机器上运行,因为我去了他的办公室寻求帮助。现在我到家了,我在我的项目中添加了相同的四行代码,但它没有重定向到.xhtml页面 调试表明它在ExternalContext行失败。此外,在捕获异常时,堆栈跟踪只显示“null”。我不明白为什么我的项目,和我在教授的电脑上看到的代码完全一样,不起作用。哈哈 getServletContext()

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

调试表明它在ExternalContext行失败。此外,在捕获异常时,堆栈跟踪只显示“null”。我不明白为什么我的项目,和我在教授的电脑上看到的代码完全一样,不起作用。哈哈

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

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

Hmmm谢谢。不过我看到它工作正常。我是否需要在web.xml文件或持久化单元中设置一些内容?我让我的教授用电子邮件从他的机器上发送修改后的代码,但当我试着在我的机器上运行时,同样的问题出现了。我检查了我的xml文件,一切都是一样的。Idk