簡體   English   中英

如何從Servlets訪問@ViewScoped托管bean?

[英]How to access @ViewScoped managed beans from Servlets?

我想訪問Servlet中的視圖范圍托管bean。

我搜索了類似的問題,得到了這些問題:

如何從使用FacesContext.getCurrentInstance() 視圖范圍中獲取bean ,在Servlet中不適用,因為它應該給出null結果

JSF - 按名稱獲取托管bean,它處理所有其他范圍但不處理viewcope

我會認為這是不可能的,不是嗎?

有一個簡單的解決方案可以將bean范圍更改為會話范圍,但這是最后的機會,因為我擔心內存消耗。

我最后需要的是:managebean包含dataTable中顯示的一些數據。 同一頁面應包括這些數據的圖表表示的圖像(強制性)。 圖像可以由Servlet生成,但它需要訪問數據或從db重新加載它們。

我也嘗試過PrimeFaces 2.X中的<p:graphicImage>但它與viewscope bean不兼容。 有什么建議嗎?

那是不可能的,不。 視圖范圍與特定的JSF視圖相關聯,這在普通的HTTP servlet請求中是無法實現的。 請注意,在普通HTTP servlet請求期間,您無法訪問具體的請求作用域bean,它們將始終返回null

會話范圍是您可以獲得的最佳范圍。 一旦在servlet中完成了屬性,就可以從會話范圍中刪除該屬性。

session.removeAttribute("somename");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM