zoukankan      html  css  js  c++  java
  • EL表达式

    一、EL表达式
    EL:Expression Language的缩写,表达式语言。
    基本语法形式:${EL表达式}
    1、作用:替换掉JSP中的java表达式<%=%>
    2、功能:EL表达式不支持字符串连接操作
    a、从域中获取数据,并把数据显示在页面上。不会出现控制指针异常。
    ${p.name}:
    Java:
    Person p = pageContext.findAttribute("p");
    out.write(p.getName());

    .运算符:调用getter方法

    []运算符:
    .运算符能做的,它都能做。${p.name}=${p['name']}=${p["name"]}
    .运算符不能做的,它也能做(能做不符合java命名规范的数值的获取)。 ${list[0]} ${header['Accept-Encoding']}


    b、进行简单的数学和逻辑运算
    ${5/3}===>1
    ${5%3}===>2
    **empty:能判断表达式是否是null或者""字符串(不会忽略首尾空格)。是的话返回true
    能判断一个集合中有没有元素。

    c、获取web中开发中的常用对象(11大隐式对象)
    pageContext:代表javax.servlet.jsp.PageContext对象本身
    其余10个都是代表Map类型
    pageScope:代表的是一个Map。页面范围的域对象中的Map
    requestScope:
    sessionScope:
    applicationScope:

    param:
    paramValues:

    header:
    headerValues:

    cookie

    initParam:


    d、调用普通java类中的静态方法(自定义EL函数)
    编写步骤:(自定义标签的步骤相同)
    1、编写一个类:定义一个静态方法。
    package com.itheima.functions;

    public class StringUtil {
    public static String toUpperCase(String str){
    return str.toUpperCase();
    }
    public static String connect(String s1,String s2){
    return s1+s2;
    }
    }
    2、在WEB-INF目录下建立一个扩展名为tld(Tag Libary Defination)的xml文件。(EL函数与具体类的方法进行一个映射)
    (参考Tomcat中的例子)
    <?xml version="1.0" encoding="UTF-8"?>
    <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    version="2.0">
    <tlib-version>1.0</tlib-version>
    <short-name>myfn</short-name>
    <uri>http://www.itheima.com/jsp/functions</uri>
    <function>
    <description>Converts the string to uppercase</description>
    <name>toUpperCase</name>
    <function-class>com.itheima.functions.StringUtil</function-class>
    <function-signature>java.lang.String toUpperCase( java.lang.String )</function-signature>
    </function>
    <function>
    <name>connect</name>
    <function-class>com.itheima.functions.StringUtil</function-class>
    <function-signature>java.lang.String connect( java.lang.String,java.lang.String )</function-signature>
    </function>
    </taglib>
    3、在web.xml中将tld的实际存放路径与tld中的uri进行绑定(可选的:前提是你把tld文件放到了WEB-INF目录下)
    <jsp-config>
    <taglib>
    <taglib-uri>http://www.itheima.com/jsp/functions</taglib-uri>
    <taglib-location>/WEB-INF/myfn.tld</taglib-location>
    </taglib>
    </jsp-config>
    4、在JSP中使用自定义的函数
    使用前:通过taglib指令,引入
    Tip:
    SUN提供的标准的EL函数。全都是与String有关
    属于JSTL的一部分:(Java Standard Tag Libary)
    core:核心
    fmt:格式化
    xml:操作xml
    sql:操作数据库
    functions:EL函数

    前提:使用JSTL,导入jar包:jstl.jar standard.jar


    二、JSTL中的Core标签:c:if c:forEach
    1、c:if:如同java中的if
    属性:
    test:必须的。要求返回值是boolean的表达式(EL或Java表达式)。如果为true,则主体内容显示
    var:存放结果的变量名
    scope:存放结果的域范围。默认是page。
    2、c:forEach:循环遍历(重复执行主体内容)
    属性:
    items:要遍历的对象。数组、List、Set、Map、Enumeration等
    begin:遍历的items如果有的话,代表索开始引号
    end:遍历的items如果有的话,代表索结束引号
    var:存放结果的变量名
    step:步长
    varStatus:指定一个变量,该变量引用一个对象
    该对象有以下方法:
    getIndex():返回当前遍历的元素的索引
    getCount():返回当前遍历的元素的索引+1
    isFirst():返回当前遍历的元素是不是第一个
    isLast():返回当前遍历的元素是不是最后一个

  • 相关阅读:
    15. DML, DDL, LOGON 触发器
    5. 跟踪标记 (Trace Flag) 834, 845 对内存页行为的影响
    4. 跟踪标记 (Trace Flag) 610 对索引组织表(IOT)最小化日志
    14. 类似正则表达式的字符处理问题
    01. SELECT显示和PRINT打印超长的字符
    3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息
    2. 跟踪标记 (Trace Flag) 3604, 3605 输出DBCC命令结果
    1. 跟踪标记 (Trace Flag) 1117, 1118 文件增长及空间分配方式
    0. 跟踪标记 (Trace Flag) 简介
    SpringBoot + Redis + Shiro 实现权限管理(转)
  • 原文地址:https://www.cnblogs.com/yys369/p/5325963.html
Copyright © 2011-2022 走看看