`

JSTL(Jsp Standard Tag Library) 与 EL表达式(Expression Language)

阅读更多
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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics