JSTL:在构建路径中未找到c:if

时间:2019-06-12 15:25:47

标签: maven jsp jstl maven-3

我最近将ANT项目迁移到了Maven。完成所有依赖项并获得项目错误后。我在Eclipse中看到此警告:

The tag handler class for "c:if" (org.apache.taglibs.standard.tag.rt.core.IfTag) was not found on the Java Build Path

我对c:import,c:out c:set也看到相同的警告。

我有标签:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

在JSP中添加。我在pom文件中添加了JSTL 1.2依赖项。你能告诉我如何摆脱这些警告吗?

2 个答案:

答案 0 :(得分:1)

我有同样的错误。为了解决这个问题,我刚刚在pom.xml中添加并保存了以下内容。

<!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-impl -->
<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-impl</artifactId>
    <version>1.2.1</version>
</dependency>

在某些早期的Eclipse版本中,您可能需要修改代码的“

我的代码使用

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ attribute name="normalPrice" fragment="true" %>
<%@ attribute name="onSale" fragment="true" %>
<%@ variable name-given="name" %>
<%@ variable name-given="price" %>
<%@ variable name-given="origPrice" %>
<%@ variable name-given="salePrice" %>
   <head>
      <title>Tag Example</title>
   </head>
<table border="1">
  <tr>
    <td>
      <c:set var="name" value="Hand-held Color PDA"/>
      <c:set var="price" value="$298.86"/>
      <jsp:invoke fragment="normalPrice"/>
    </td>
    <td>
      <c:set var="name" value="4-Pack 150 Watt Light Bulbs"/>
      <c:set var="origPrice" value="$2.98"/>
      <c:set var="salePrice" value="$2.32"/>
      <jsp:invoke fragment="onSale"/>
    </td>
    <td>
      <c:set var="name" value="Digital Cellular Phone"/>
      <c:set var="price" value="$68.74"/>
      <jsp:invoke fragment="normalPrice"/>
    </td>
    <td>
      <c:set var="name" value="Baby Grand Piano"/>
      <c:set var="price" value="$10,800.00"/>
      <jsp:invoke fragment="normalPrice"/>
    </td>
    <td>
      <c:set var="name" value="Luxury Car w/ Leather Seats"/>
      <c:set var="origPrice" value="$23,980.00"/>
      <c:set var="salePrice" value="$21,070.00"/>
      <jsp:invoke fragment="onSale"/>
    </td>
  </tr>
</table>
<body>
   <c:set var = "salary" scope = "session" value = "${2000*2}"/>
   <c:if test = "${salary > 2000}">
       <p>My salary is:  <c:out value = "${salary}"/><p>
   </c:if>
</body>

答案 1 :(得分:-1)

如果该标签实际上工作正常,那么它只是Eclipse的一个假阴性。在这种情况下,您可以强制进行新的检查以编辑标签名称,然后将其设置回正确的名称。

因此,例如,单击您的“ c:if”标签,删除单个字符,然后重新输入(与之前完全一样)。保存。就我而言,这足以消除警告。