• EL表达式与JSTL标签库(一)


    1、JSTL概述

    JSTL标签库由标签库和EL表达式两个部分组成。JSTL标准标签库(Java Server Page Standard Tag Library),用来解决创建的页面的操作问题,包括输入输出、条件测试、遍历集合。

    2、EL表达式语法

    EL表达式的主要作用:

    • 获取数据。EL表达式主要用于替换JSP页面中的脚本表达式,从Web作用域中获取Java对象,获取数据,包括访问Javabean的属性、List集合、Map集合、数组等。
    • 执行运算:利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面完成一些简单的逻辑操作。
    • 获取Web开发常用对象。利用EL表达式的隐式对象,可以轻松获得Web常用对象的引用,从而获取这些对象中的数据。

    EL表达式的格式:

      ${expression },使用${文本时需要变为${

    []和.运算符

      EL表达式可以返回任意类型的值。EL取值结果为一个带有属性的对象时,使用[]或.来访问其属性,实质是通过getter方法来访问其属性。访问形式如下:

    • ${object["propertyName"]}
    • ${object.propertyName}

      propertyName不是有效的java变量名时,只能使用[]方式访问。如${header["accept-language"]}。

      如果访问对象的属性也是一个对象,并且也带有属性,此时既可以使用[],也可以使用.运算符来访问第二个对象的属性。${pageContext.request.contextPath }

    3、EL表达式的隐式对象

      EL表达式中,存在11个隐式对象。

    隐式对象 描述 例子
    pageContext JSP上下文对象。它可访问JSP隐式对象。 ${pageContext.request.contextPath }
    param 一个包含所有请求参数的Map。用于获取请求参数。 ${param.loginame }
    paramValues 包含所有请求参数的Map。 ${paramValues.name }
    header 请求标题。 ${header.name }
    headerValues 包含请求标题,以标题名作为key的Map。 ${headerValues.name }
    cookie 包含请求对象中所有cookie对象。 ${cookie.name.value }
    initParam 包含环境初始化参数。 ${initParam.name }
    pageScope 页面域 ${pageScope.name }
    requestScope 请求域 ${requestScope.name }
    sessionScope 会话域 ${sessionScope.name }
    applicationScope 应以程序上下文域 ${applicationScope.name }

    4个作用域的范围从小到大:pageContext、requestScope、sessionScope、applicationScope。省略scope对象时,默认查找范围由小到大。

    4、EL应用举例

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="UTF-8">
     7 <title>注册页面</title>
     8 </head>
     9 <body>
    10     <h2>注册页面</h2>
    11     <form action="register.jsp" method="post">
    12         <table>
    13             <tr>
    14                 <td>登录名:</td>
    15                 <td><input type="text" name="loginame" /></td>
    16             </tr>
    17             <tr>
    18                 <td>爱好:</td>
    19                 <td>
    20                     <input type="checkbox" name="hobby" value="soccer">足球&nbsp;
    21                     <input type="checkbox" name="hobby" value="tennis">网球&nbsp;
    22                     <input type="checkbox" name="hobby" value="basketball">篮球&nbsp;
    23                 </td>
    24             </tr>
    25             <tr>
    26                 <td><input type="submit" value="提交"></td>
    27             </tr>
    28         </table>
    29     </form>
    30 </body>
    31 </html>
     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="UTF-8">
     7 <title>获取隐式对象测试</title>
     8 </head>
     9 <body>
    10     <h2>EL取值测试</h2>
    11     param获取单个参数:${param.loginame }<br>
    12     paramValues获取多个参数:${paramValues.hobby[0] } - ${paramValues.hobby[1] }
    13         -${paramValues.hobby[2] }<br>
    14     header获取标题:${header.connection }<br>
    15     header获取标题:${header["accept-language"] }<br>
    16     headerValues获取标题:${headerValues["accept-language"] }<br>
    17     cookie获取JSESSIONID:${cookie.JSESSIONID }<br>
    18     cookie获取JSESSIONID名称:${cookie.JSESSIONID.name }<br>
    19     cookie获取JSESSIONID值:${cookie.JSESSIONID.value }<br>
    20     initParam获取初始化参数:${initParam.username }<br>
    21 </body>
    22 </html>

    web.xml配置全局初始化参数

    1 <context-param>
    2       <param-name>username</param-name>
    3       <param-value>AlphaJunS</param-value>
    4   </context-param>

  • 相关阅读:
    uniapp微信小程序主包vendor.js过大
    uniapp 微信小程序实现微信分享
    uniapp 解决H5跨域问题
    AT2339[AGC011C]Squared Graph【黑白染色】
    6. Z 字形变换
    PCl1.12.0安装
    C#中两个冒号(::)的作用 转
    只代理中国大陆
    C语言在Linux上的基本开发环境
    在linux上使用命令操作阿里云盘下载上传分享文件
  • 原文地址:https://www.cnblogs.com/alphajuns/p/11055345.html
Copyright © 2020-2023  润新知