一尘不染

http://java.sun.com/jsp/jstl/core和http://java.sun.com/jstl/core之间的区别

jsp

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

第1行和第2行之间有什么区别。jsp文件中的第2行没有给出任何错误,但是另一个jsp中的第1行却给出了错误

找不到“ http://java.sun.com/jsp/jstl/core
” 的标记库描述符

我已经看到了问题的解决方案在这里,但没能明白什么是“Facelets的”

的确,Facelets 1.x和2.x对JSTL标签库使用不同的名称空间。在Facelets
1.x中,它或多或少是一个名称空间错误,并且在Facelets 2.x中已得到修复。

您可以在Facelets标记库文档中找到所有Facelets 2.x标记。Facelets并没有将完整标签集设置为真正的JSTL
taglib。和中只有一部分<c:xxx>和全部<fn:xxx>
被复制到Facelets中。的<fmt:xxx><sql:xxx>并且<xml:xxx>标签不Facelets的接管。


阅读 316

收藏
2020-06-08

共1个答案

一尘不染

如果您正在使用(使用JSTL 1.2

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

表示使用不需要的EL表达式<c:out>。您可以将EL表达式直接插入jsp页面,例如${propertyName}

使用时(JSTL 1.0不推荐使用)

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

您不能直接在所需的jsp页面上使用EL表达式<c:out>。页面上的EL表达式不起作用。例如<c:out value=”${propertyName}”>

另外,您的网络应用版本(位于中web.xml)应降到2.3才能使用http://java.sun.com/jsp/core,这又太旧了。

结论:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -可以直接使用EL

<%@taglib prefix="c" uri="http://java.sun.com/jsp/core" %> -不能直接使用EL

2020-06-08