el笔记!

EL 全名为Expression Language,
它原本是JSTL 1.0为方便存取数据所自定义的语言。

EL变量:
    EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username

的变量。因为我们并没有指定哪一个范围的username,所以它的默认值会先从Page 范围找,假如
找不到,再依序到Request、Session、Application范围。假如途中找到username,就直接回传,
不再继续找下去,但是假如全部的范围都没有找到时,就回传null(见表6-1):

6-2-3 自动转变类型:
    自动转变类型,我们来看
    下面这个范例:
    ${param.count + 20}
    假若窗体传来count的值为10时,那么上面的结果为30。之前没接触过JSP 的读者可能会认为
    上面的例子是理所当然的,但是在JSP 1.2 之中不能这样做,原因是从窗体所传来的值,它们的类
    型一律是String,所以当你接收之后,必须再将它转为其他类型,如:int、float 等等,然后才能
    执行一些数学运算,下面是之前的做法:
    String str_count = request.getParameter("count");

隐含对象:
    PageScop,RequestScope,sessionScope,applicationScope
    param   ServletRequest.getParameter(String name)。回传String 类型的值

param 的功能和request.getParameter(String name) 相同, 而paramValues 和
equest.getParameterValues(String name)相同。如果用户填了一个表格,表格名称为username,则我们
就可以使用${param.username}来取得用户填入的值。


所谓条件运算符如下:
    ${ A ? B : C}
    意思是说,当A 为true 时,执行B;而A 为false 时,则执行C。



            JSTL是由JCP
            (Java Community Process)所指定的标准规格,它主要提供给Java Web 开发人员一个标准通用的
            标签函数库。


    <c:out>主要用来显示数据的内容

    <c:if>的用途就和我们一般在程序中用的if 一样。
    语法:
        <c:if test="testCondition" [var="varName"]
            [scope="{page|request|session|application}"]>
            具体内容
        </c:if>

    test:如果表达式的结果为true,则执行本体内容,false则相反

    var: 用来储存test运算后的结果,即true 或false
    scope :var 变量的JSP 范围


    接下来看下列的范例:
        <c:if test="${param.username = = 'admin' }">
        ADMIN 您好!! //body 部分
        </c:if>
        如果名称等于admin,则会显示"ADMIN您好!! "的动作,如果相反,则不会执行<c:if>的body


7-2-3 迭代操作
迭代(Iterate)操作主要包含两个标签:<c:forEach>和<c:forTokens>,笔者依此顺序依次说明
这两个标签的使用。
● <c:forEach>
<c:forEach> 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当
条件符合时,就会持续重复执行<c:forEach>的本体内容。


    语法:
        语法1:迭代一集合对象之所有成员
        <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"]
        [end="end"] [step="step"]>
        本体内容
        < /c:forEach>
        语法2:迭代指定的次数
        <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end"
        [step="step"]>
        本体内容
        </c:forEach>

        var :用来存放现在指到的成员
        items :被迭代的集合对象
        varStatus: 用来存放现在指到的相关成员信息
        begin: 开始的位置
        end: 结束的位置
        step: 每次迭代的间隔数


● <c:forTokens>
    <c:forTokens> 用来浏览一字符串中所有的成员,其成员是由定义符号(delimiters)所分隔的。
    语法:
    <c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"]
        [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
        本体内容
    </c:forTokens>      

    var: 用来存放现在指到的成员
    items: 被迭代的字符串
    delims: 定义用来分割字符串的字符    
    varStatus: 用来存放现在指到的相关成员信息N 
    begin: 开始的位置    
    end :结束的位置  
    step: 每次迭代的间隔数Y 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值