【问题标题】:No tag "setDataSource" defined in tag library imported with prefix "sql"以前缀“sql”导入的标签库中未定义标签“setDataSource”
【发布时间】:2019-03-16 02:09:54
【问题描述】:

我已经在 Eclipse 中编写了以下代码并在 Tomcat 服务器中运行它。即使已经导入了 jstl.jar 文件,仍然得到错误:No tag "setDataSource" defined in tag library imported with prefix "sql".Have they从 jstl sql 中删除数据源?

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix = "c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "sql" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
heklllooo

<sql:setDataSource var = "db" driver = "oracle.jdbc.driver.OracleDriver" 
url = "jdbc:oracle:thin:@localhost:1521:XE", user ="system",password = "password"/>

<sql:query var="rs" dataSource = "${db}">select * from Persons</sql:query>
<c:forEach items = "${rs.rows}" var = "person">
<c:out value="${person.personid}"></c:out> : <c:out value="${person.FirstName}"></c:out> 
</c:forEach>

</body>
</html>

【问题讨论】:

  • 仅供参考:自 2003 年以来,官方不鼓励使用 JSTL SQL 标记库(连同 JSTL XML 标记库)。确保您在学习 JSP/JSTL 时阅读的是最新资源,而不是十多年前或由业余爱好者而非作者维护的资源。

标签: jstl


【解决方案1】:

它现在可以工作了。从下面的行中删除了标点符号/逗号,代码正在运行。

【讨论】:

    【解决方案2】:

    确保您在 pom.xml 中有 jstl maven 依赖项并完成导入。

    <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>jstl</artifactId>
       <version>${jstl.version}</version>
       <scope>runtime</scope>
     </dependency>
    

    请参阅thisthis 以获得更清晰的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-09
      • 2012-06-28
      • 2017-03-09
      • 2012-05-13
      • 2011-03-13
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      相关资源
      最近更新 更多