JSTL1.1 之EL表达式

关键字: JSTL
一.JSTL简介
      JSTL全名为JSP Standard Tag Libaray(JSP标准标签函数库),目前最新的版本为

1.1,它是由JCP(Java Commnunity Process)制定的标准规范,提供给我们一个标准通用的

标签函数库.主要分为5大类:
      (1)核心标签库(Core)
      (2)I18N格式标签库(I18N-capable format tab libaray)
      (3)SQL标签库(SQL tag libaray)
                    (4)XML标签库(XML tag libaray)
      (5)函数标签库(Functions tag libaray)
二.使用JSTL的好处

      Web程序员能供利用JSTL和EL来开发Web程序,取代传统直接的在页面上脚本的方式

(scriplet),提高程序的可读性,易如维护,和开发。使得在视图页面上基本不用使用

脚本代码的,从而页面设计人员和标签的功能开发人员分离,甚至页面设计人员不用学

习JSP脚本语言

三.前提条件:
      JSTL1.1必须在Servlet2.4和JSP2.0以上的容器才能正常工作
      下载JSTL1.1
      地址:http://jakarta.apache.org/builds/jakata-tablibs/releases/standard/
      MyEclipse5.1以后的版本自带了JSTL1.1 
      下载后把jstl.jar,standard.jar复制到你的web工程/WEB-INF/lib/目录下,还有这

些标签库描述文件:c-1_0-rt.tld,c-1_0.tld,c.tld等等
      在jsp页面中添加
      <%@ taglib uri=“uri” prefix=“prefix” %>

四.核心标签库(CTL)
功能表:
分类
     
功能分类
     
标签名称


Core
     
表达式操作
     
out、set、remove、catch
流程控制
     
if、choose、when、otherwise
迭代操作
     
forEach
forTokens
URL操作
     
import param
url param
redirect param

下面我们来具体看看:

      * 表达式操作

                      1.< c:out value=“${value}” [escapeXml=“true | false”]

[default=“defaultvalue”] />                         
                              用途:页面写(出入)数据 
                              属性:
                              value 显示得值,它是object类型,可以为EL
                              escapeXml 是否是使用转换符号,比如:< (<) 、 > ($gt)等等
                              default 设置默认值
                    2.< c:set>
                      < c:set value=“${value}” var=“unable-EL” scope=“unable-EL”

target=“${target}”  property=“${property}” />                         
                      用途:变量设置
                      属性:
                      value  设置变量的值、Object类型
                      var        设置变量的名称、String类型、不能为EL表达式
                      scope  设置变量的范围、String类型、不能为EL表达式、默认值:page、

可为application,session,request
                      target    查找的JavaBean或java.util.Map对象,Object
                      property    targer指定的对象的属性
                    3.< c:remove>
                      < c:remove var=“variable” scope=“page | application | session

| request”/>                 
                      用途:变量容器去变量
                      属性(均不能为EL):
                      scope  变量存储的范围
                      var 为变量名称
                    4.< c:catch [var=“variable”] />
                      用途:捕捉异常 
                      属性:
                      var :用类存储错误信息的变量

      * 流程控制
          1.< c:if test=“${value1 == value2}” var=“save_test_result” scope=“

application | request | ….” />
          判断语句
          属性:
          test 为Boolean类型、逻辑表达式结果
          var 为String类型,保存test的结果,为”true”|”false”
          scope 为String类型、变量var的存储范围

                        2.< c:choose>
                      为< c:when>、< c:otherwise>的父标签
                      主题内容(BodyContent)
                      1或多个< c:when>
                      0或多个< c:otherwise> 
                      例如:
                      < c:choose>
                      < c:when/>
                      < c:otherwise>
                      < c:when/>
                      < /c:choose>

                      3.< c:when>

                      用法和< c:if>差不多,但是它必须在< c:otherwise>之前(相当于if必须

在else之前)
                      属性:
                      test    和c:if test属性一样
                      4.< c:otherwise>
                      相当于else语句,当<c:when>的条件不成立时,运行其主题内容
                      比如:
                      < c:when test=“${user.role == “admin”}” >
                      < c:out value=“你好管理员先生:${user.name}”/>
                      < /c:when>
                      < c:otherwise >
                              <c:out value=“你好!”/>
                      < /c:otherwise>

      * 迭代操作

                1.< c:forEach var=“unable-el” item=“Collection” [varStatus=

“unable-el”] [begin=“begin-index”] [end=“end-index”] [step=“step-

length”]>
              在Collection对象中迭代操作
              属性:
              var: 变量名称,String类型,不能为EL
              Item:Collection对象, 可以为EL
              varStatus:变量的成员信息,String类型,不能为EL
              begin:迭代时候的变量开始位置,int类型,默认值:0
              end:迭代时候的变量结束位置,int类型
              step:为步长,int类型,默认值为1
            2.< c:forTokens item=“StringTokens” delims=“delimiters” [var=

“variableName”] [varStatuts=“uanble-el”] [begin=“begin-index”] [end=

“end-index”] [step=“step-length”] >BodyContent< /c:forTokens>
              从StringToken利用界定符号迭代
              属性:
              var: 变量名称,String类型,不能为EL
              Item:String对象,多为正则表达式, 可以为EL
              varStatus:变量的成员信息,String类型,不能为EL
              begin:迭代时候的变量开始位置,int类型,默认值:0
              end:迭代时候的变量结束位置,int类型
              step:为步长,int类型,默认值为1

      * URL操作

            1.BodyContent
用于把其他静态或动态的文件包含至本身的JSP页面。又区别于,他不但能够包含自身web

应用程序的文件,还能够              包含不同的web应用程序的的文件。
              属性
              uri 文件包含的地址 String类型
              context 在相同容器下,不同的web站台必须”/”开头,String类型
              var: 变量名称,存储文件中的内容,String类型,不能为EL
            scope 为String类型、变量var的存储范围,不能为EL
            charEncoding 文件内容的编码    String类型
            varReader 以Reader对象的形式存储文件中的内容,不能为EL
            2.< c:param name=“${name}” value=“${param.name}” />
              请求中的参数
              属性:
              name : 参数名称 ,String类型
              value : 对应参数的值
              比如:
              < c:import url=“www.xxxx.com “ >
                      <c:param name=“name” value=“yourname” />
              < /c:import >
              等同于:
              http://www.xxxx.com?name=yourname
              3.< c:url value=“${value}” [context=“${context}”] [var=“varName

”] [scope=“application | request”] />
              产生一个url,其中主题内容必须文
              属性:
              value url地址 String类型
            context 在相同容器下,不同的web站台必须”/”开头,String类型
              var: 变量名称,存储文件中的内容,String类型,不能为EL
            scope 为String类型、变量var的存储范围,不能为EL
              比如:
            < img src=“<c:url value=‘www.xxxx.com’ >< c:param name=‘picture’

value=‘picName’/></c:url>” />
< img src=“www.xxxx.com/?pictue=picName” />
            4.< c:redirect url=“${url}” [context=“${context}”] />
              从定向到url
              属性:
              uri 文件包含的地址 String类型
              context 在相同容器下,不同的web站台必须”/”开头,String类型
              比如:
                    < c:redirect url=“<c:url value=‘www.xxxx.com’>< c:param name=‘

paramName’ value=‘paramName’ /></c:url>” context=“/contextName” />
      等同< c:redirect url=“< c:url value=‘www.xxxx.com’ /></c:url>”

context=“/contextName” >< c:param name=“paramName” value=‘paramValue’

/></c:redirect>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值