JSTL(Jsp Standard Tag Library)
JSTL 本身是一个标签库,由sun公司发布,apache jakarta组织负责维护,开源标准技术。
有两个版本:Standard-1.0 Taglib 和 Standard-1.1 Taglib
Standard-1.0 Taglib(JSTL1.0) ——支持Servlet2.3 和JSP1.2规范, Tomcat4.1以上支持
Standard-1.1 Taglib(JSTL1.1) ——支持Servlet2.4 和JSP2.0规范, Tomcat5.0以上支持
JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
如果要使用JSTL,则必须将jstl.jar和 standard.jar文件放到classpath中,如果你还需要使用XML processing及Database access (SQL)标签,还要将相关JAR文件放到classpath中,这些JAR文件全部存在于下载回来的zip文件中。这个zip文件可以从http://jakarta.apache.org/builds/jakarta-taglibs/releases/standard/jakarta-taglibs-standard-1.0.zip下载。
EL表达式(Expression Language)
EL在JSTL1.0中补引入,作为java表达式来工作,配合JSTL标签库。
在JSTL1.1中,Servlet2.4 或JSP2.0容器(Tomcat5以上)已经能够独立理解任何EL表达式。EL可以出现在JSP页面的任何角落。
web.xml中必须配为web-app_2_4.dtd, 否则,el表达式不能用。
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
http://java.sun.com/dtd/web-app_2_4.dtd>
=============================
JSTL与普通taglib的区别在于sun为其定义了一个专门的规范,由servletContainer的实现者实现这个规范,因此不需要在web.xml中另外定义,当然如果你要使用非默认的uri则需要在web.xml中定义了
==================================
EL表达式与JSTL版本问题:org.apache.jasper.JasperException
文章分类:Java编程
今天给学生讲JSTL核心库里的<c:out>标签,做演示时无任何问题,但学生在练习时<c:out value="abc" default="123"/>可以正常显示,在使用<c:out value="${name}">使用EL表达式取request值时报下面的异常:
org.apache.jasper.JasperException: /jsp/pages/MyJsp.jsp(4,0) According to TLD or attribute directive in tag file, attribute end does not accept any expressions...
后经研究发现这是JSTL版本的问题 :
jstl的1.0的版本有两个tld,以core为例,core.tld和core_rt.tld,后者支持表达式,jstl 1.1的core.tld就都支持了
在使用JSTL1.1时发现上面错误. 必须将第一行换成:
<%@ taglib prefix="c" http://java.sun.com/jstl/core_rt" %>
才正确.
===============================
jsp的版本
JSP的1.0规范的最后版本是1999年9月推出的,
12月又推出了1.1规范。
目前较新的是JSP1.2规范,
JSP2.0规范的征求意见稿也已出台。
JSP 2.0介绍
新的JSP规范版本包括新的用于提升程序员工作效率功能,主要有:
An Expression Language (EL)
允许开发者创建 Velocity-样式 templates (among other things).更快更简单的创建新标签的方法。
Hello, ${param.visitor} <%-- same as: Hello, <%=request.getParameter("visitor")%> --%>
MVC 模式
为了把表现层presentation从请求处理request processing 和数据存储data storage中分离开来,SUN公司推荐在JSP文件中使用一种“模型-视图-控制器”Model-view-controller 模式。规范的SERVLET或者分离的JSP文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的JSP页。有几种平台都基于服务于网络层的模-视图-控件 模式(比如Struts 和Spring framework)。
================================
Servlet/JSP Spec__Apache Tomcat version
2.5/2.1----------------6.0.14
2.4/2.0----------------5.5.25
2.3/1.2----------------4.1.36
2.2/1.1----------------3.3.2
Servlet/JSP版本对应可以对其进行解析的TOMCAT的版本
================================
web.xml 中的web-app_2_3.dtd是什么意思?——答:对应servelt的版本
<!--
这是一个Servlet 2.3 配置描述器的XML DTD。所有的Servlet 2.3 配置描述器(deployment
descriptor) 必须包含一个如下形式的DOCTYPE:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
-->
原文链接:
http://hi.baidu.com/fytcm/blog/item/86311c381d4a0c2896ddd83e.html