我第一次使用java服务器页面而且我遇到了标签问题。我也在Eclipse工作,如果那是相关的。
我得到的具体错误是:
org.apache.jasper.JasperException: /Query.jsp (line: 5, column: 0) No tag "choose" defined in tag library imported with prefix "c"
问题是,是标签“选择”,带有前缀c ...
我在使用通常推荐的网址时出现问题,似乎其中一些网址已过时,因此我下载了标准标记并将其解压缩到我的WEB-INF / tags目录中。
我的jsp文件以:
开头<%@ page contentType="text/html" import="beans.*" %>
<%@ taglib prefix="c" tagdir="/WEB-INF/tags/c.tld" %>
<%@ taglib prefix="sql" tagdir="/WEB-INF/tags/sql.tld" %>
<%@ taglib prefix="fn" tagdir="/WEB-INF/tags/fn.tld" %>
<c:choose>
....
c.tld:
...
<tag>
<description>
Simple conditional tag that establishes a context for
mutually exclusive conditional operations, marked by
<when> and <otherwise>
</description>
<name>choose</name>
<tag-class>org.apache.taglibs.standard.tag.common.core.ChooseTag</tag-class>
<body-content>JSP</body-content>
</tag>
我猜我某处存在某种配置错误,但我对它的位置完全无能为力。
答案 0 :(得分:3)
您的taglib声明是错误的。替换这个:
<%@ taglib prefix="c" tagdir="/WEB-INF/tags/c.tld" %>
用这个:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
并确保不(正如一些古老的教程所说):
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
...并重复其他库。您不需要自己的.tld
文件副本,不再需要它们。
我在使用通常推荐的网址时出现问题,似乎其中一些已经过时了
我不确定你从哪里得到它,但几乎所有的JSP / servlet引擎都可以使用我提到的URI。如果这些URI 不有效,那么就会发布一个新问题。下载您自己的tld
文件几乎肯定不是正确的方法。