我正在尝试将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 :(得分:0)
FacesContext
只有在FacesServlet
控制当前请求时才存在,否则FacesContext.getCurrentInstance()
将返回null
。如果它在JSF托管bean内部的方法中执行,则此代码将起作用。所以,也许您只是复制了这段代码并将其粘贴到您的自定义servlet中。