2012-02-21 67 views

回答

3

你可以做,在一個ServletContextListener

public void contextInitialized(ServletContextEvent e) { 
    e.getServletContext().setAttribute("historyBean", new HistoryBean()); 
} 

@WebListener註冊偵聽器,或者在web.xml中<listener>..</listener>

+0

感謝Bozho ....我 做過某事。現在我想弄清楚如何從ServletContext中獲取它,以便我可以使用HistoryBean中的方法........ – mona 2012-02-21 22:59:30

+0

調用'ctx.getAttribute(「historyBean」)' – Bozho 2012-02-22 06:47:13

3

當您使用JSF時,只需將其註冊爲應用程序範圍的bean即可。

@ManagedBean(eager=true) 
@ApplicationScoped 
public class HistoryBean { 
    // ... 
} 

(注意eager=true,這autoconstructs對web應用程序的啓動豆而不需要引用它的一些觀點或豆,你不需要爲這個ServletContextListener

這種方式是不僅在JSF上下文中常用的方式#{historyBean},但它在也可作爲與託管bean名稱的servlet上下文屬性作爲關鍵的servlet如下:

HistoryBean historyBean = (HistoryBean) getServletContext().getAttribute("historyBean"); 
+0

謝謝BalusC。但我不能使用JPA註釋..... – mona 2012-02-22 15:46:23

+0

這不是JPA註釋。這是JSF註釋。 – BalusC 2012-02-22 15:47:52

相關問題