• EL表达式


    EL 全名为Expression Language

    作用:从域对象中取值,替换或者简化jsp页面中java代码的编写

    EL中的基础操作符

    EL表达式支持大部分Java所提供的算术和逻辑操作符:

    操作符描述
    .访问一个Bean属性或者一个映射条目
    []访问一个数组或者链表的元素
    +
    -减或负
    *
    / or div
    % or mod取模
    == or eq测试是否相等
    != or ne测试是否不等
    < or lt测试是否小于
    > or gt测试是否大于
    <= or le测试是否小于等于
    >= or ge测试是否大于等于
    && or and测试逻辑与
    || or or测试逻辑或
    ! or not测试取反
    empty测试是否空值(字符串,集合,数组是否为null并且长度是否为0)

    获取域对象中的值

    语法:${域对象别名.关键字}

    JSP域对象名EL域对象别名
    applicationapplicationScope
    requestrequestScope
    sessionsessionScope
    pageContextpageScope
    • 获取域对象中的对象值

    • 获取域对象中的list集合

    • 获取域对象中的map集合值

    1. <head>
    2. <title>EL表达式的基本使用title>
    3. head>
    4. <body>
    5. <%--
    6. el表达式 主要的作用 简化程序员从四大域对象中获取值的过程
    7. 语法: ${}
    8. --%>
    9. <%
    10. // 数据准备 在域对象中存储值
    11. pageContext.setAttribute("pageCont", "pageContextValue");
    12. pageContext.setAttribute("request", " pageContextRequestValue");
    13. request.setAttribute("request", "requestValue");
    14. session.setAttribute("session", "sessionValue");
    15. application.setAttribute("application", "applicationValue");
    16. %>
    17. <p>----------------指定域对象获取key对应的值------------------------p>
    18. <%--指定域对象获取key对应的值--%>
    19. <p>pageContext = ${pageScope.pageCont}p>
    20. <p>request=${requestScope.request}p>
    21. <p>session=${sessionScope.session}p>
    22. <p>application=${applicationScope.application}p>
    23. <p>----------------不指定域对象获取key对应的值------------------------p>
    24. <%--不指定域对象获取key对应的值
    25. 使用el表达式 在不指定域对象获取key所对应的值时
    26. 那么el表达式会依次的从四个对象中去找 先从哪个域对象中找到对应的key 则直接返回
    27. pageScope -> requestScope -> sessionScope -> applicationScope
    28. --%>
    29. <p>pageContext = ${pageCont}p>
    30. <p>request=${request}p>
    31. <p>session=${session}p>
    32. <p>application=${application}p>
    33. <p>----------------获取的key在四个域对象中都不存在------------------------p>
    34. <%--获取的key在四个域对象中都不存在--%>
    35. <p>aa=${aa}p>
    36. body>
    1. <head>
    2. <title>EL表达式处理复杂类型的值title>
    3. head>
    4. <body>
    5. <%
    6. // 简单类型的值 String
    7. request.setAttribute("str", "stringValue");
    8. // 对象类型 User
    9. //User user = new User();
    10. //user.setAge(20);
    11. //user.setUsername("Tom");
    12. User user = new User("jack", 30);
    13. request.setAttribute("user", user);
    14. // 数组类型
    15. int[] numbers = new int[]{1,2,3,4,5};
    16. request.setAttribute("array", numbers);
    17. // 集合类型 List<String> List<User>
    18. ArrayList<String> list = new ArrayList<>();
    19. list.add("aa");
    20. list.add("bb");
    21. list.add("cc");
    22. list.add("dd");
    23. request.setAttribute("list", list);
    24. ArrayList<User> users = new ArrayList<>();
    25. users.add(user);
    26. users.add(user);
    27. users.add(user);
    28. users.add(user);
    29. request.setAttribute("users", users);
    30. // Map
    31. HashMap map = new HashMap<>();
    32. map.put("username", "admin");
    33. map.put("password", "123456");
    34. request.setAttribute("map", map);
    35. %>
    36. <p>----------------简单数据类型----------------------p>
    37. <p>str = ${str}p>
    38. <p>----------------User对象数据类型----------------------p>
    39. <p>str = ${user}p>
    40. <ul>
    41. <%--
    42. User -> getUsername() getUname()
    43. user.uname uname 代表的并不是user类中的属性 在获取值时 找的时当前key对应的get方法 user.uname getUname
    44. --%>
    45. <li>${user.username}li>
    46. <li>${user.age}li>
    47. ul>
    48. <p>----------------数组类型的值----------------------p>
    49. <p>array=${array}p>
    50. <ul>
    51. <li>${array[0]}li>
    52. <li>${array[1]}li>
    53. <li>${array[2]}li>
    54. <li>${array[3]}li>
    55. <li>${array[4]}li>
    56. ul>
    57. <p>----------------list集合类型的值----------------------p>
    58. <p>array=${list}p>
    59. <ul>
    60. <li>${list.get(0)}li>
    61. <li>${list.get(1)}li>
    62. <li>${list.get(2)}li>
    63. <li>${list.get(3)}li>
    64. ul>
    65. <p>users=${users}p>
    66. <p>user = ${users.get(0).username}p>
    67. <p>user = ${users.get(0).age}p>
    68. <p>user = ${users.get(1).username}p>
    69. <p>user = ${users.get(1).age}p>
    70. <p>user = ${users.get(2).username}p>
    71. <p>user = ${users.get(2).age}p>
    72. <p>----------------map集合类型的值----------------------p>
    73. <p>array=${map}p>
    74. <ul>
    75. <li>${map.get("username")}li>
    76. <li>${map.get("password")}li>
    77. ul>
    78. body>
    1. <head>
    2. <title>EL表达式实现运算title>
    3. head>
    4. <body>
    5. <%--数学运算--%>
    6. <p>1+2=${1+2}p>
    7. <%--关系运算--%>
    8. <p>1<2 = ${1 < 2}p>
    9. <p>1<2 = ${1 lt 2}p>
    10. <%--逻辑运算--%>
    11. <p>true&false = ${true and false}p>
    12. <p>true&false = ${true && false}p>
    13. body>

    JSP EL隐含对象

    JSP EL支持下表列出的隐含对象:

    隐含对象描述
    pageScopepage 作用域
    requestScoperequest 作用域
    sessionScopesession 作用域
    applicationScopeapplication 作用域
    paramRequest 对象的参数,字符串
    paramValuesRequest对象的参数,字符串集合
    headerHTTP 信息头,字符串
    headerValuesHTTP 信息头,字符串集合
    initParam上下文初始化参数
    cookieCookie值
    pageContext当前页面的pageContext 获取jsp中的其他隐含对象

    您可以在表达式中使用这些对象,就像使用变量一样

  • 相关阅读:
    Linux C 进程间通信
    基于STAN的风力发电预测(Python代码实现)
    软体机器人空间感知技术综述
    [LeetCode308周赛] [前缀和] [栈] [拓扑排序]
    打造一个投资组合管理的金融强化学习环境
    java之Number与Math及Random类
    基于JavaWeb+MySQL的学院党费缴费系统
    Discrete Optimization课程笔记(2)—Constraint Programming约束规划(上)
    深度强化学习(Deep Reinforcement Learning, DRL)阶段性学习汇总(二)
    Spring Boot中捕获异常错误信息并将其保存到数据库中
  • 原文地址:https://blog.csdn.net/lmdbhf/article/details/127724997