Java 属性前缀fn不对应于任何导入的标记库
我试图在TomcatV7服务器上运行jsp代码,但失败了 org.apache.jasper.JasperException:/jsp/Checkout.jspx(第32行,第51列)属性前缀fn与任何导入的标记库都不对应 但是我的jsp代码有fn定义 xmlns:fn=”http://java.sun.com/jsp/jstl/functions" 我的jsp代码:Checkout.jspxJava 属性前缀fn不对应于任何导入的标记库,java,jsp,jsf,tomcat,Java,Jsp,Jsf,Tomcat,我试图在TomcatV7服务器上运行jsp代码,但失败了 org.apache.jasper.JasperException:/jsp/Checkout.jspx(第32行,第51列)属性前缀fn与任何导入的标记库都不对应 但是我的jsp代码有fn定义 xmlns:fn=”http://java.sun.com/jsp/jstl/functions" 我的jsp代码:Checkout.jspx <?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:eshop="urn:jsptld:/WEB-INF/tlds/eshop.tld"
version="2.1"
>
<jsp:directive.page
language="java"
contentType="application/xhtml+xml;charset=UTF-8"
/>
<jsp:output omit-xml-declaration="false"/>
<jsp:output
doctype-root-element="html"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>
<c:url var="cssUrl" value="/css/eshop.jspx"/>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Check Out</title>
<link rel="stylesheet" href="${cssUrl}" type="text/css"/>
</head>
<body>
<jsp:include page="TopMenu.jspx" flush="true"/>
<jsp:include page="LeftMenu.jspx" flush="true"/>
<div class="content">
<h2>CheckOut</h2>
<c:choose>
<c:when test="${fn:length(shoppingCart) > 0}">
<form action="">
<input type="hidden" name="action" value="orderConfirmation"/>
<table class="checkout">
<tr>
<th colspan="2">Delivery Details</th>
</tr>
<tr>
<td>Contact Name:</td>
<td><input type="text" name="contactName"/></td>
</tr>
<tr>
<td>Delivery Address:</td>
<td><input type="text" name="deliveryAddress"/></td>
</tr>
<tr>
<th colspan="2">Credit Card Details</th>
</tr>
<tr>
<td>Name on Credit Card:</td>
<td><input type="text" name="ccName"/></td>
</tr>
<tr>
<td>Credit Card Number:</td>
<td><input type="text" name="ccNumber"/></td>
</tr>
<tr>
<td>Credit Card Expiry Date:</td>
<td><input type="text" name="ccExpiryDate"/></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Confirm Order"/></td>
</tr>
</table>
</form>
</c:when>
<c:otherwise>
<p class="error">ERROR: You can't check out an empty shopping cart!</p>
</c:otherwise>
</c:choose>
</div>
</body>
</html>
</jsp:root>
退房
结账
送货详情
联系人姓名:
送货地址:
信用卡详情
信用卡上的姓名:
信用卡号码:
信用卡到期日:
错误:您不能签出空购物车
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:javaee="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee;http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>eshop</display-name>
<servlet>
<description>
</description>
<display-name>ShopServlet</display-name>
<servlet-name>ShopServlet</servlet-name>
<servlet-class>eshop.ShopServlet</servlet-class>
<init-param>
<param-name>base</param-name>
<param-value>/shop</param-value>
</init-param>
<init-param>
<param-name>imageURL</param-name>
<param-value>/images/</param-value>
</init-param>
<init-param>
<param-name>jdbcDriver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>dbURL</param-name>
<param-value>jdbc:mysql://localhost:3306/shop</param-value>
</init-param>
<init-param>
<param-name>dbUserName</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>dbPassword</param-name>
<param-value></param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ShopServlet</servlet-name>
<url-pattern>/shop/*</url-pattern>
</servlet-mapping>
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
</web-app>
埃肖普
ShopServlet
ShopServlet
eshop.ShopServlet
基础
/商店
图像URL
/图像/
jdbcDriver
com.mysql.jdbc.Driver
dbURL
jdbc:mysql://localhost:3306/shop
数据库用户名
根
数据库密码
ShopServlet
/商店/*
曲奇
我应该如何解决这个问题
我在eclipse中再次加载了该项目,只是更改了web.xml中的代码
servlet-mapping>
<servlet-name>ShopServlet</servlet-name>
<url-pattern>/ShopServlet</url-pattern>
</servlet-mapping>
servlet映射>
ShopServlet
/ShopServlet
URL为:localhost:8080/eshopx/ShopServlet
错误消息已更改
说明请求的资源不可用 您需要在jsp中使用taglib声明
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions"
prefix="fn" %>
标记库声明位于jsp的顶部。它不起作用。根元素前面的文档中的标记必须格式正确。很抱歉,我没有意识到您使用的是xhtml,请忘记添加,而是使用此html标记。它不在您发布的版本中,这是您拥有的html标记:我在jsp根目录中使用了该标记