2015-11-19 90 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