2010-06-02 52 views
0

我正在研究使用JSP構建的預先存在的Web應用程序,該應用程序使用外部Java庫。我想讓一些使用jsp:useBean標籤實例化的JavaBeans可用於Java代碼。Java庫中的JSP應用程序範圍對象

這將是一個很好的做法嗎?我想我可以將所討論的對象傳遞給需要它們的每個函數調用,但我想避免這種情況。

回答

3

應用程序作用域對象存儲爲ServletContext的屬性。如果「函數調用」先後獲得了ServletContext,那麼它可以只抓住他們如下:

Bean bean = (Bean) servletContext.getAttribute("beanname"); 

我當然想到的是,「功能」在servlet上下文運行。即它通常以(servlet)方式直接執行。

+0

其實我不認爲是。在JSP中導入適當的類(通過'<%page import%>'指令)並進行調用。他們如何在servlet上下文中運行? – FrontierPsycho 2010-06-02 12:28:10

+1

哎呀,不好的做法。無論如何,servlet上下文在JSP * scriptlet *中以及隱含的'application'引用中都可用。例如。 '%Bean bean =(Bean)application.getAttribute(「beanname」); %>'等等。 – BalusC 2010-06-02 12:35:31

+0

所以你說的是我必須將Bean傳遞給函數,除非我重新設計應用程序。 :)簡而言之,我將如何糾正設計? – FrontierPsycho 2010-06-02 12:38:43