JAVA

EL 表达式

1.语法结构
 EL表达式用${表达式}表示

 

2.<%@ page isELIgnored="true"%> 表示是否禁用EL语言,
 TRUE表示禁止.
 FALSE表示不禁止.JSP2.0中默认的启用EL语言.


3.[]与.运算符
     EL 提供.和[]两种运算符来存取数据。
  1.当存取的属性名称不是全数字或者全字母的只能用[]
  例如:
   ${user.My-Name}应当改为${user["My-Name"] }
  2.当存取的属性名称要动态操作时只能用[]
  例如:
   ${sessionScope.user[data]}中data 是一个变量  
   3.其他的用方括号[]或者.都可以  

 

 

 

4.EL表达式可操作
 4.1.常量
 4.2.变量
 4.3.隐式对象. 最常用的隐式对象有:(其中的user是一个对象,username是user的属性)
  4.3.1.与输入有关的隐含对象
   ${param}   表示返回请求参数中单个字符串的值
    例:${param.username}
   ${paramValues}  表示返回请求参数的一组值
    例:${paramValues.username[0]}
  4.3.2.与范围有关的隐含对象 (这四个隐含对象只能用来取得范围属性值,即JSP中的     getAttribute(String name),却不能取得其他相关信息)
   4.3.2.1.pageScope   表示页面范围的变量(放入page中不会)
    例:
     ${pageScope.username}
     ${pageScope.user.username}
     ${pageScope.user[username]}
   4.3.2.2.requestScope  表示请求对象的变量(声明和Java代码一样)
    例:
     ${requestScope.username}
   4.3.2.3.sessionScope  表示会话范围内的变量
    例:
     ${sessionScope.username}
   4.3.2.4.applicationScope 表示应用范围的变量.
    例:
     在servlet中声明application对象
      HttpSession s=request.getSession();
      ServletContext  application=s.getServletContext();
     jsp中:
      ${applicationScope.user.username}
      或者
      ${applicationScope.user["username"]}
  4.3.3.其他的隐式对象
    4.3.3.1.cookie
     例:
      在cookie中设定一个名称为userCountry的值,取值:
       ${cookie.userCountry}
    4.3.3.2.header
     例:
      要取得用户浏览器的版本
       单一值:${header["User-Agent"]}
       多值取一个:${headerValues["属性名"][哪一个值]}
    4.3.3.3.initParam:自行设定 web 站台的环境参数(Context),当我们想取得这些数时,可以        使用 initParam 隐含对象去取得它
     例:
      取得在web.xml 中设定的参数值如下:
      <?xml version="1.0" encoding="ISO-8859-1"?> 
      <web-app 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/web-app_2_4.xsd"
       version="2.4">
      <context-param>
        <param-name>userid</param-name>
        <param-value>mike</param-value>
      </context-param>
      </web-app>
      要取得userid属性的值mike;
       之前的做法:
        String userid = (String)application.getInitParameter("userid");
       EL表达式:
        ${initParam.userid}

    4.3.3.4.pageContext
     ${pageContext.request.queryString}   取得请求的参数字符串
     ${pageContext.request.requestURL}    取得请求的URL,但不包括请求之参数字符串
     ${pageContext.request.contextPath}   服务的web application 的名称
     ${pageContext.request.method}        取得HTTP的方法(GET、POST)
     ${pageContext.request.protocol}   取得使用的协议(HTTP/1.1、HTTP/1.0)
     ${pageContext.request.remoteUser}    取得用户名称
     ${pageContext.request.remoteAddr }   取得用户的IP地址
     ${pageContext.session.new}

     判断session是否为新的,所谓新的session,表示刚由server产生而client尚未使用
     ${pageContext.session.id}  取得session的ID
     ${pageContext.servletContext.serverInfo}  取得主机端的服务信息
    注解:要在jsp中显示${}改成\${},因为${}在JSP 2.0 中是特殊字符,JSP 容器会自动将它当做       EL 来执行
 4.4.自动类型转换
  4.4.1.表达式中的值是非boolean的值,在类型转换原则可以的基础上可以互相转化,但是不可以转成        boolean 类型
  4.4.2.表达式中是boolean类型的值,只能返回false 或者true,如果为null 或 "" 返回false;

 

5.EL 的保留字: (命名时避免用保留字)
 And    eq  gt  true
 Or    ne  le  false
 No    lt  ge  null
 instanceof  empty div  mod

 

6.EL运算符
 6.1.EL 算术运算符
  算术运算符  说明 范例       结果
   +   加  ${ 17 + 5 }      22
   -   减  ${ 17 - 5 }     12
   *   乘  ${ 17 * 5 }      85
   / 或 div 除  ${ 17 / 5 } 或  ${ 17 div 5 }    3
   % 或 mod 余数 ${ 17 % 5 } 或  ${ 17 mod 5 }    2

 6.2.EL 关系运算符
   关系运算符   说 明  范 例       结果
   = = 或 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

 6.3.EL逻辑运算符
   逻辑运算符    说  明  范 例        结 果
   && 或 and  交集   ${ A && B } 或  ${ A and B }  true / false
   || 或 or   并集   ${ A || B } 或  ${ A or B }   true / false
   !  或 not   非   ${ !A }  或  ${ not A }    true / false

 6.4.EL 其他运算符
  (1) Empty 运算符 :判断值是否为 null 或空的,返回true 或者false
   例:${ empty param.name }
  (2) 条件运算符
   例:
    ${ A ? B : C}
    意思是说,当 A 为 true 时,执行 B;而 A 为 false 时,则执行 C。
  (3) ( )  括号运算符 :括号运算符主要用来改变执行优先权

 

7.自定义EL函数 
 Tomcat 的 EL 函数范例,主要分为四个部分:
  web.xml        设定taglib的TLD文件位置
  functions.jsp      使用EL函数的范例程序
  jsp2-example-taglib.tld    EL函数、标签库的设定文件
  jsp2.examples.el.Functions.java  EL函数主要程序逻辑处理部分
 自定义EL函数:
  7.1.函数的书写(函数必须是公开的静态方法,函数写在类文件里)
  7.2.tld书写:
   <function>
     <description>函数描述</description>
     <name>函数名称</name>
     <function-class>上面的函数在那个类里面</function-class>
     <function-signature> 传入值和返回值类型  </function-signature>
   </function>
  7.3.web中设置
   <jsp-config>
    <taglib>   用来设定标签的 TLD 文件位置
     <taglib-uri> 用来指定 TLD 的uri 位置(类路径)</taglib-uri>
     <taglib-location> 用来指定 TLD 文件的位置</taglib-location>
    </taglib>
   </jsp-config>
   
  7.4.在程序中,一开始定义taglib,设置前置名(prefix),任意起名。
   调用EL函数必须在开头加入:
  <% @ taglib prefix="my" 
     uri="用来指定 TLD 的uri 位置(类路径)" %>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值