jsp - 在 maven 中使用 JSTL 时出错:DataSource 无效:“java.sql.SQLException:
问题描述
我有所有依赖项都添加了所有这些依赖项,但仍然出现此错误。不使用 JSTL 它工作正常
在jsp代码中使用JSTL获取数据
<sql:setDataSource var="myDS" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/survey" user="root" password="root" />
<sql:query var="listUsers" dataSource="${myDS}">
SELECT * FROM surveydetail
</sql:query>
在 POM 文件中
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-spec</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-impl</artifactId>
<version>1.2.1</version>
</dependency>
错误是:这是我得到的错误
javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource
invalid: "java.sql.SQLException: No suitable driver found for ${myDS}"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:909)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:838)
org.apache.jsp.Dashboard_jsp._jspService(Dashboard_jsp.java:224)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause
javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver found for ${myDS}"
org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:285)
org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:168)
org.apache.jsp.Dashboard_jsp._jspx_meth_sql_005fquery_005f0(Dashboard_jsp.java:280)
org.apache.jsp.Dashboard_jsp._jspService(Dashboard_jsp.java:203)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
解决方案
我有同样的问题。我设法通过在 pom.xml 中将排除项添加到 spring-jdbc 来解决问题:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>5.2.5.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
推荐阅读
- reactjs - ReactJS 动态路由
- android - 使用后退按钮关闭应用程序后,React 本机应用程序不会在重新启动时呈现
- excel - Excel VBA:选择文件夹中所有工作簿的单元格
- database - 计算符合条件的数组元素
- c# - 是否有一种有效的方法来确定 MeshGeometryModel3D 的任何顶点是否在视口中可见?
- html - 图像、标题和文本的对齐
- c++ - 性能差异:std::accumulate vs std::inner_product vs Loop
- field - 如何获取选择字段的特定项目。奥多 8
- php - 为什么 php 标签内的内容在 index.php 内有问题
- navision - 时间格式
在 Microsoft Dynamics Navision 2009 中始终为零