使用 web.xml 获取 JSTL sql 数据源?

Using web.xml to get JSTL sql dataSource?

正在尝试为 JSTL SQL 操作获取数据源,但无法连接。

在我的 web.xml:

<context-param>
    <param-name>databaseJNDI</param-name>
    <param-value>jdbc/testDS</param-value>
</context-param>

我在 JSP 文件中尝试的内容:

<sql:setDataSource dataSource = "jdbc/testDS"/>

我试图这样做但失败了,以避免将数据库凭据硬编码到页面中。数据库是 运行,但我对 JSTL 的了解还不够,现在无法自行解决这个问题。

它抱怨驱动程序,但我对 servlet 使用了相同的设计,但没有指定驱动程序来访问数据库。

对我的问题有任何见解吗?知道我的运气,这可能很简单。

使用initParam你可以获得上下文参数。

web.xml 中为数据库连接属性创建 context-params

<context-param>
    <param-name>driverClass</param-name>
    <param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
<context-param>
    <param-name>connectionURL</param-name>
    <param-value>jdbc:mysql://localhost/dbname</param-value>
</context-param>
<context-param>
    <param-name>username</param-name>
    <param-value>foo</param-value>
</context-param>
<context-param>
    <param-name>password</param-name>
    <param-value>bar</param-value>
</context-param> 

在JSP中使用

<sql:setDataSource var="dataSource" 
   driver="${initParam['driverClass']}"
   url="${initParam['connectionURL']}" 
   user="${initParam['username']}"
   password="${initParam['password']}" />