2
如何使用FacesContext
中的自己的副本替換@ApplicationScoped
託管bean?我所有的是FacesContext
(我在JSFUnit中)的一個實例。如何將託管bean注入FacesContext?
如何使用FacesContext
中的自己的副本替換@ApplicationScoped
託管bean?我所有的是FacesContext
(我在JSFUnit中)的一個實例。如何將託管bean注入FacesContext?
應用程序作用域Bean存儲在application map中,託管bean名稱作爲關鍵字。
所以,這應該這樣做:
FacesContext.getCurrentInstance().getExternalContext()
.getApplicationMap().put("managedBeanName", new Bean());
順便說一句,更深層次下的JSF佔地面積達在Servlet API,應用程序映射只是一個ServletContext
屬性映射。有用的知道什麼時候發生,你只有ServletContext
在你的手中。並且在同一行中,session map映射到HttpSession
屬性和request map到HttpServletRequest
屬性。分別將它們用於會話和請求範圍的bean。
BalusC您曾經發布關於使用跨重定向的屬性/信息。你建議使用會話映射,然後用過濾器清除它。我認爲這篇文章的鏈接可能對某些人有幫助(我真的不能再找到那篇文章了,你張貼了太多的§||¬)。或者至少清理HttpSession並填充請求映射而不是執行FacesContext.getCurrentInstance似乎更好。 – Toskan 2011-04-26 16:12:01
這個可能嗎? http://stackoverflow.com/questions/4610771/dynamic-chart-generation-pass-object-to-servlet-from-jsf-1-2無論如何,真正的解決方案取決於JSF版本和功能要求。 – BalusC 2011-04-26 18:54:48