2011-04-20 90 views
1

我在Java 6和Spring 3.0上運行Java Web應用程序。無法讀取JSP中的屬性值

我有屬性文件由Web應用程序使用,並由服務器啓動時由spring框架加載。

config.properties

url=http://www.url.com 
test.url=http://www.test.com 
dev.url=http://www.dev.com 

我有要求在Java和JSP代碼來使用的屬性值。我可以使用Spring 3.0中提供的註釋訪問java中的值:@Value("${test.url}")

要使用JSP中的屬性,我試圖將屬性加載到servlet上下文中,以便可以直接在JSP中引用屬性

servletContext.setAttribute("props", properties); 

在我的JSP,當我打印${props},它會導致以下...

{url=http://www.url.com,test.url=http://www.test.com,dev.url=http://www.dev.com} 

但是當我打印${props.test.url},不打印輸出(同一作品罰款${props.url})。

這是一個問題,或者我做錯了什麼。我如何獲得${props.test.url}在jsp中的工作?

回答

6

你的EL語法不太對。試試這個:

${props['test.url']} 

${props.url}語法工作由於解決地圖的內容,就好像是一個JavaBean屬性便利的語法,但在地圖密鑰本身含有.這是行不通的,在在這種情況下,您應該使用上面顯示的完整的地圖查找語法。

+0

非常感謝。這工作。我仍然感到驚訝......它怎麼沒有打我:( – Johnny 2011-04-22 18:38:53

+0

你應該接受答案,當他們解決你的問題,約翰尼!謝謝skaffman。 – 2011-07-03 07:38:32