• 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():返回当前遍历的元素是不是最后一个

  • 相关阅读:
    NHibernate中session.update()及session.merge()的区别
    子序列 (All in All,UVa 10340)
    古老的密码 (Ancient Cipher,NEERC 2004,LA 3213)
    例题1 勇者斗恶龙 (The Dragon of Loowater,UVa 11292)
    HDU1869 六度分离
    B. T-primes
    PoJ 1595 PrimeCuts
    poj 3518 Prime Gap
    PKU1988磁铁
    求组合数
  • 原文地址:https://www.cnblogs.com/yys369/p/5325963.html
Copyright © 2020-2023  润新知