2011-12-22 139 views
0

訪問JSP中的數據庫連接字符串,我使用的是屬性文件訪問與Spring應用程序上下文的數據庫連接,如下所示:使用彈簧3.1

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
     destroy-method="close" p:driverClass="${app.jdbc.driverClassName}" 
     p:jdbcUrl="${app.jdbc.url}" 

我想現在引用在我的JSP相同的字符串,我嘗試過,但沒有運氣:

<c:out value="${app.jdbc.url}" /> 

+2

你在使用Spring MVC嗎?如果是這樣的話,你可以在你的Controller代碼中獲得url,並將它作爲你的Model的一個屬性提供給你,這個屬性在渲染時暴露給你的JSP。 – 2011-12-22 09:55:21

+0

我是,並且可以愉快地爲模型添加屬性...但我參考了什麼? – NimChimpsky 2011-12-22 09:59:02

回答

0

我已經做了這種方式:

@Autowired 
private ComboPooledDataSource dataSource; 

然後在我的控制方法,它返回視圖名稱:

model.addAttribute("db", dataSource.getJdbcUrl()); 

,並在jsp中只是這樣的引用:

DB connection string is ${db} 
5

在Spring 3.x中,你可以這樣做:在您的控制器

@Value("#{'${app.jdbc.url}'}") 
public void setURL(String url) { ... } 

。然後,您可以爲該屬性提供一個getter並從JSP訪問它。

此外,我完全錯過了你的問題的春天3.1部分。您可以將環境自動裝入您的控制器。然後,你可以這樣做:

environment.getProperty("app.jdbc.url") 
+0

什麼時候會調用setUrl()?並通過什麼?你是否建議有實例/線程特定的變量呢? – NimChimpsky 2011-12-22 10:17:07

+0

它將由框架設置,假定您是自動裝配控制器依賴項。 – 2011-12-22 10:18:45

+0

在'org.springframework.beans.factory.config.BeanExpressionContext'類型的對象上找不到字段或屬性'app' – NimChimpsky 2011-12-22 10:29:21