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

    *******概述

    JSP2.0要把html和css分离、要把html和javascript分离、要把Java脚本替换成标签。标签的好处是非Java人员都可以使用

    JSP2.0 – 纯标签页面,即:不包含<% … %>、<%! … %>,以及<%= … %>

    EL(Expression Language)是一门表达式语言,它对应<%=…%>。我们知道在JSP中,表达式会被输出,所以EL表达式也会被输出

    *******EL的格式

    格式:${…}

    例如:${1 + 2

    *******关闭EL

    如果希望整个JSP忽略EL表达式,需要在page指令中指定isELIgnored=”true”。

    如果希望忽略某个EL表达式,可以在EL表达式之前添加“”,例如:${1 + 2}。

    *******EL运算符

    运算符

    说明

    范例

    结果

    +

    ${17+5}

    22

    -

    ${17-5}

    12

    *

    ${17*5}

    85

    /div

    ${17/5}${17 div 5}

    3

    %mod

    取余

    ${17%5}${17 mod 5}

    2

    ==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

    &&and

    并且

    ${true&&false}${true and false}

    false

    !not

    ${!true}${not true}

    false

    ||or

    或者

    ${true||false}${true or false}

    true

    empty

    是否为空

    ${empty “”},可以判断字符串、数据、集合的长度是否为0,为0返回trueempty还可以与not!一起使用。${not empty “”}

    true

    ******注意:EL不显示null,当EL表达式的值为null时,会在页面上显示空白,即什么也不显示

    ******EL表达式格式

    先来了解一下EL表达式的格式!现在还不能演示它,因为需要学习了EL11个内置对象后才方便显示它,下面会说

    操作List和数组:${list[0]}、${arr[0]};

    操作bean的属性:${person.name}、${person[‘name’]},对应person.getName()方法

    操作Map的值:${map.key}、${map[‘key’]},对应map.get(key)

    ******EL内置对象,前4个是域相关内置对象,一共有11个

    pageScope                   ${pageScope.name}等同与pageContext.getAttribute(“name”)

    requestScope               ${requestScope.name}等同与request.getAttribute(“name”)

    sessionScope               ${sessionScope.name}等同与session.getAttribute(“name”)

    applicationScope         ${applicationScope.name}等同与application.getAttribute(“name”)

    如果在域中保存的是JavaBean对象,那么可以使用EL来访问JavaBean属性,

    因为EL只做读取操作,所以JavaBean一定要提供get方法,而set方法没有要求,代码如下,下面是一个person类

    public class Person {
        private String name;
        private int age;
        private String sex;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
    public void setAge(int age) {
            this.age = age;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
    }

    在JSP中写

    <body>
    <%pageContext.setAttribute("p1", new person("Linda",18,"female")); %> ${pageScope.p1.name } ${pageScope.p1.age } ${pageScope.p1.sex }
    //这是注释:全域查找:${person}表示依次在pageScope、requesScopet、sessionScope、appliationScope四个域中查找名字为person的属性
    </body>

    在页面上可以得到结果为

    Linda
    23
    female

    param

    paramValues

    header

    headerValues

    Cookie

    initParam

    pageContext

  • 相关阅读:
    java 反射 报错:Attempt to get java.lang.Integer field "..." with illegal data type conversion to int
    经常报错:Communications link failure
    解析Excel
    spring+atomikos+mybatis 多数据源事务(动态切换)
    mysql 存储过程
    Ace Admin 学习笔记
    spring mvc 表单提交 乱码
    spring 事务
    基于注解的Spring多数据源配置和使用(非事务)
    javaEE版本的eclipse中导入工程,发现server里面找不到工程,根本发布不了也不能运行
  • 原文地址:https://www.cnblogs.com/QianYue111/p/9743461.html
Copyright © 2011-2022 走看看