zoukankan      html  css  js  c++  java
  • EL表达式和标准标签库

    EL表达式(exc..sion language): 语法 ${...}
    jsp中page指令有一个属性叫isELIgnored, 用来标记此页面是否忽略EL表达式, 默认为false
    举个栗子:
    常规写法: <%=session.getAttribute("test")%>
    EL表达式写法: ${sessionScope.test}或者${sessionScope["test"]}
    []和. 大多数情况下可以通用, 除了两种情况中
    1, 表达式中含有特殊字符
    错误: ${sessionScope.test_name} vs 正确: ${sessionScope["test_name"]}
    2, 需要动态获取属性
    sessionScope["test"]
    [] 中可以放一个变量名, 但是点的后面不行
    在EL表达式中[]也可以用来表示数组或者集合中的索引值
    EL变量
    当前面不指定哪个作用域下面的值的时候, 会默认按照下面的顺序去找, 如果都找不到, 就输出一个空字符串
    pageScope --> requestScope --> sessionScope --> applicationScope
    EL自动类型转换
    String num = request.getParameter("num");
    int a = 20;
    int b = Integer.parseInt(num != null ? num : "0");
    out.print(a + b);

    ${param.num + a}
    EL隐式对象
    上面说到的各种Scope和param都是EL表达式中的隐式对象
    paramValues--->所有请求参数作为String类型的数组的Map类
    Header--->按照名称存储请求头主要值的Map类
    HeaderValues--->将请求头的所有值作为String数组存储的Map类
    cookie将名称存储请求附带的cookies的Map类
    获取cookie:
    ${cookie.username.name}
    ${cookie.username.value}
    initParam按名称存储web应用程序上下文初始化参数的Map类
    EL运算符
    算术运算符: + - * /或者div %或者mod
    关系运算符: ==或者eq !=或者ne <或者lt >或者gt <=或者le >=或者ge
    逻辑运算符: &&或者and ||或者or !或者not
    验证运算符: empty( empty 对于 null和"" 的判断都是返回true)
    判断某个变量是否为空
    JSTL(JSP Standard Tag Library)标准标签库:
    1, 核心标签(最常用, 最重要的)
    表达式控制标签
    out
    输出常量
    value---直接赋值
    输出变量
    default---默认值
    escapeXml---控制转义字符(默认为true, 如果需要转义, 设置为false)
    set
    三个属性: var value scope---将一个值存到*scope中(默认是pageContext)
    赋值的时候可以将值放在value后面, 也可以放在两个标签中间
    <c:set var="t" value="山东淄博" />
    <c:set var="t1">安徽黄山</c:set>
    target 对应javaBean的name值
    property 对应定义的类里面的属性
    remove----只能用于页面内的变量移除
    移除某个变量
    var: 指定需要remove的那个变量名
    scope: 两个scope中的变量名有重复的时候, 可以通过这个属性来确定移除的是哪个
    catch
    相当于try...catch...
    可以在这个标签中放其他标签, 只有一个属性var
    流程控制标签
    if
    <c:if test="EL表达式" var="变量名" scope="" ></c:if>
    choose---以下三个标签通常一起使用, 类似于switch
    when
    otherwise--可以不写
    循环控制标签
    forEach
    var: 设定一个变量值来存储从数组或者集合中遍历出来的值
    items: 指定需要遍历的数组或者集合
    begin, end: 指定需要遍历的起始位置
    step: 每次遍历跳过的个数, 默认值是1
    varStatus: 通过index(在原集合中的索引值), count(当前第几个), first(是否是第一个), last(是否是最后一个)来描述begin和end子集中的状态
    注意first和last, 是判断的是否在输出结果中的第一个或者最后一个, 并不是原来的集合中
    forTokens(回忆一下字符串的split()方法)
    输出的结果中同样也有index, count, first, last这四个属性
    url操作标签
    import
    将另一个页面的内容引入到这个页面上来, 与include指令的区别: 这个标签可以引入其他项目中甚至网络上的资源
    <c:import
    url="被导入的路径(可以写网络资源, 可以写本地文件)"
    context="相同服务器下的其他项目, 必须以'/'开头"
    var="以String类型存入被包含文件的内容"
    scope="四个作用域"
    charEncoding="被导入文件的编码格式"
    varReader="以Reader类型存储被导入的文件"></c:import>
    url
    一般用来动态生成超链接
    <c:url value="https://www.baidu.com" var="newurl"></c:url>
    <a href="${newurl}">新的url</a>
    redirect
    页面重定向
    <c:redirect url="重定向的页面">
    <c:param name="username">admin</c:param>
    <c:param name="password">123456</c:param>
    </c:redirect>
    2, 格式化标签
    3, sql标签
    4, xml标签
    5, jstl函数
    contains
    startWith
    endWith
    escapeXml

  • 相关阅读:
    python读取文件报错:pandas.errors.ParserError: iterator should return strings, not bytes (did you open the file in text mode?)
    Python关键字排序
    Python中赋值和print笔记
    python元祖和文件用法举例
    Python 列表和字典用法解释
    python中字符串及字符串的格式化
    python动态类型简介
    Python中关于深复制和浅复制详细解释
    Python中常用数字类型
    python内置对象的一些知识
  • 原文地址:https://www.cnblogs.com/yuanlaihenkuang/p/7193856.html
Copyright © 2011-2022 走看看