2011-11-30 44 views
8

有沒有一種方法可以讓我在EL中的ServletContext中設置屬性,以便它最終成爲JavaScript變量?如何在EL中打印servlet上下文屬性?

我將其設置爲

context.setAttribute("testing.port", "9000"); 

我試着檢索它像

alert("port" +'${testing.port}'); 

我剛開始一片空白。

回答

8

問題是鍵名中的句點(.)。 EL將該週期解釋爲對任何對象testing引用的名爲getPort 的訪問器方法的調用。 Fetch the value from the appropriate implicit object

${applicationScope['testing.port']} 

或只使用一個不同的密鑰:

${testingPort} 

是的,這就是真正發生的簡化。它也可能會尋找一個名爲isPort的謂詞獲得者,或者嘗試Map#get("port")

+0

'$ {servletContext}'不存在。有'$ {pageContext.servletContext}',但這不是你想要的。另見http://stackoverflow.com/tags/el/info和http://docs.oracle.com/javaee/5/tutorial/doc/bnahq.html#bnaij – BalusC

+0

啊,非常感謝。這清除了它......我的JSP正在生鏽! –