• jsp-EL表达式


    JSP标签技术

    在JSP页面中写入大量的java代码会导致JSP页面中html代码和java代码混杂在一起,会造成jsp页面结构的混乱,导致后期难于维护,并且代码难以复用。

    于是在JSP的2.0版本中,sun提出了JSP标签技术,推荐使用标签来代替JSP页面中java代码,并且推荐,JSP2.0以后不要在JSP页面中出现任何一行java代码。

    EL表达式

    格式:${ 常量/表达式/变量 } (放在EL中的变量得先存入域中,才可以获取变量的值)

    作用:

    1. 计算放在其中的表达式的结果,将结果输出在当前位置。

    2. 主要作用:用于从域对象中获取数据,将获取到的数据输出在当前位置。

    域中的对象:

    pageContextrequestsessionapplication

    EL的使用

    常量、表达式、变量

    获取常量

    Hello EL输出到浏览器

    ${"Hello EL"}
    

    获取表达式结果

    如果3>5成立, 输出yes, 否则输出no

    ${ 3 > 5 ? "yes" : "no" }
    

    可以在或括号里进行运算, 例如;${3 + 5}

    获取变量

    (变量得先存入中)

    在EL中书写变量, 底层会根据变量的名字, 到四个作用域中寻找同名的属性,如果可以找到, 就会输出这个属性对应value值, 如果找不到, 就什么也不输出(也不会报错)
    在寻找时, 会按照如下作用域的顺序去找对应的属性, 先->后

    pageContextrequestsessionapplication

    如果找到就直接返回(即使后面还有也不会再寻找), 如果找不到, 就什么也不输出

    jsp对象 EL作用域对象
    pageContext pageScope
    request requestScope
    session sessionScope
    application applicationScope

    例如:

    <%
        request.setAttribute("name", "jack");
        session.setAttribute("name", "tom");
    %>
     <!--按循序查找, request的优先级比session高, 所以输出jack-->
    ${ name } <br>
    <!--指定作用域的name, 输出session中的name-->
    ${ sessionScope.name }
    

    结果;(浏览器输出页面)

    jack
    tom
    

    获取作用域中数组或集合中的元素

    获取数组或集合元素

    例如:

    <%
        String[] names = {
            "孙尚香", "黄忠", "马可波罗", "成吉思汗"
        };
        request.setAttribute("names", names);
        List list = new ArrayList();
        list.add("安其拉");
        list.add("小乔");
        list.add("王昭君");
        request.setAttribute("list", list);
    %>
    ${names[0]} <br> <!--显示names数组中下标为0的元素-->
    ${names[1]} <br> <!--显示names数组中下标为1的元素-->
    ${list[2]} <br><!--显示list集合中下标为2的元素-->
    ${list[3]} <!--list集合中没有下标为3的元素, 什么都不输出-->
    

    结果: (浏览器页面)

    孙尚香
    黄忠
    王昭君
    

    获取作用域中map集合中的元素

    获取map元素

    例如:

    <%
        Map map = new HashMap();
        map.put("name", "尼古拉斯.赵四");
        map.put("age", 32);
        map.put("addr", "中国");
        request.setAttribute("map1", map);
    %>
    ${map1.name} <br> <!--获取key为name的value-->
    ${map1.age} <br> <!--获取key为age的value-->
    ${map1.addr} <!--获取key为addr的value-->
    

    结果: (浏览器页面)

    尼古拉斯.赵四
    32
    中国
    

    获取作用域中JavaBean对象的属性值

    获取对象中的属性

    例如:

    <%
        // 声明一个User对象,并将User对象存入域中
        User u1 = new User();
        u1.setName("刘德华");
        u1.setAge(18);
        u1.setAddr("中国香港");
        request.setAttribute("user", u1);
    %>
    ${user.getName()} <br> <!--完整写法, 获取name属性}-->
    ${user.age} <!--简写法, 获取age-->
    

    结果:(浏览器页面)

    刘德华
    18
    
  • 相关阅读:
    05.迪米特原则 (LOD)
    04.接口隔离原则 (ISP)
    03.依赖倒置原则 (DIP)
    02.里氏替换原则 (LSP)
    01.单一职责原则 (SRP)
    Flutter点击事件的穿透,父元素点击事件覆盖了子元素点击的问题
    flutter dart语法判断 0/0==Nan 1/0==Infinity的问题
    vue项目引入三方字体
    vue echart图表打包后 图片不显示
    vue设置页面的高度100%
  • 原文地址:https://www.cnblogs.com/zpKang/p/13123759.html
Copyright © 2020-2023  润新知