zoukankan      html  css  js  c++  java
  • JavaWeb:EL & JSTL

    EL:全名为 Expression Language

    1、语法:${sessionScope.user.sex}(从Session 的范围中,取得用户的性别),

    所有的EL 都是以 ${  为起始,以 } 为结尾的。

    2、EL 提供 . 和 [ ] 两种运算符来存取数据。

    3、EL 变量:EL 存取变量数据的方法很简单,例如:${username} 。它的意思是去除某一范围中名称为 username 的变量,因为我们没有指定哪一范围的 username,所以它的默认值会先从 Page 范围找,假如找不到,再依序到 Request、Session、Application 范围。假如途中找到 username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传 null。

    ${pageScope.username} 取出 Page 范围的 username 变量
    ${requestScope.username} 取出 Request 范围的 username 变量
    ${sessionScope.username} 取出 Session 范围的 username 变量
    ${applicationScope.username} 取出 Application 范围的 username 变量


    其中,pageScoperequestScopesessionScope applicationScope 都是 EL 的隐含对象 。

    4、自动转变类型:例如 ${param.count + 20},假如窗体传来 count 的值为10,那么结果就是 30。

    5、EL 隐含对象:

      》与范围有关的隐含对象:requestScopesessionScope、pageScope、 applicationScope(这四个相当于 getAttribute(String name))

      》与输入有关的隐含对象:param(回传String 类型的值,相当于 request.getParameter(String name))、

                  paramValue(回传String[ ] 类型的值,相当于 request.getParameterValues(String name))

      》其他的隐含对象:pageConext(表示此 JSP 的 PageContext)

    6、EL 的关系运算符:

    关系运算符 说 明 范 例 结 果
    = = eq 等于 ${ 5 = = 5 } ${ 5 eq 5 } true
    != ne 不等于 ${ 5 != 5 } ${ 5 ne 5 } false
    < lt 小于 ${ 3 < 5 }${ 3 lt 5 } true
    > gt 大于 ${ 3 > 5 }${ 3 gt 5 } false
    <= le 小于等于 ${ 3 <= 5 }${ 3 le 5 } true
    >= ge 大于等于 ${ 3 >= 5 }${ 3 ge 5 } false
    注意
    在使用 EL 关系运算符时,不能够写成:
    ${param.password1} = = ${param.password2}
    或者
    ${ ${param.password1 } = = ${ param.password2 } }
    而应写成
    ${ param.password1 = = param.password2 }

    7、Empty 运算符:主要用来判断值是否为 null 或空的 ,例如 ${ empty param.name }

    条件运算符:${ A ? B : C}

    括号运算符:主要用来改变执行的优先权,例如:${ A * (B+C) }

    JSTL:全名为JavaServer Pages Standard Tag Library (JSP 标准标签函数库)

    核心标签库 c。JSTL 也支持 EL 语法 ,例如 <c:out value="${userList.user.phoneNumber}" /> 。JSP 中要使用 JSTL 中的核心标签库时,必须使用<%@ taglib %>指令,并且设定 prefix uri 的值,通常设定如下:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    操作:

    1)、c:out  主要用于对特殊字符进行转换真正进行输出时,最好使用 c:out。

    2)、c:set  可以为域赋属性值。而对域对象中的 JavaBean 的属性赋值用的并不多。

    3)、c:remove  移除指定域对象的指定属性值(较少使用,即便移除也是在 Servlet 中完成)

    4)、c:if  在页面上对现实的内容进行过滤,把结果存储到域对象的属性中,但不灵活,会被其他自定义标签所取代。

    5)、c:choose、c:when、c:otherwise 作用同上。但麻烦,不灵活。

    6)、c:forEach  对集合进行遍历的(常用)

    7)、c:forTokens  处理字符串,类似于 String 类的 split() 方法。(知道即可)

    8)、c:import  导入页面到当前页面的。(了解)

    9)、c:redirect  当前页面进行重定向的。(使用较少)

    10)、c:url  产生一个URL 的, 可以进行URL 重写,变量值编码。(较为常用)

    over。

  • 相关阅读:
    ISO/IEC 9899:2011 条款6.10.3——宏替换
    ISO/IEC 9899:2011 条款6.10.2——源文件包含
    关于Objective-C新增的__kindof关键字
    ISO/IEC 9899:2011 条款6.10.1——条件包含
    ISO/IEC 9899:2011 条款6.10——预处理指示符
    ISO/IEC 9899:2011 条款6.9.2——外部对象定义
    Objective-C中使用不定参数个数的方法调用
    php添加数据到xml文件的例子
    nginx rewrite重写与防盗链配置
    nginx url自动加斜杠的问题
  • 原文地址:https://www.cnblogs.com/daoxiaobai/p/6287911.html
Copyright © 2011-2022 走看看