zoukankan      html  css  js  c++  java
  • EL(表达式语言)

    EL(Expression Language):目的是为了简化Jsp页面的语言,使页面看起来更加简洁

      基本的语法特点

        以“${"开头,以”}“结束

    一 与低版本的环境兼容----禁用EL

      (1) 使用斜杠""符号:    ${expression}

      (2) 使用page命令:   <%@ page isELIgored="true" %>  // 属性为true则忽略EL表达式,反之则解析EL表达式

      (3) 在web.xml文件中配置<el-ignored>元素

        eg:

    <jsp-config>
            <jsp-property-group>
                <ul-pattern>*.jsp</url-pattern>
                <el-Ignored>true</el-Ignored>    //此处设置为false,表示使用EL
              </jsp-property-group>
    </jsp-config>

    二  保留的关键字

        el也有自己的保留的关键字,在为变量命名时候,应尽量避免给这些关键字

        and eq gt  instanseof div .......

    三 EL的运算符及优先级

        1 通过EL访问数据

          通常情况下,"[]"和"."运算符是等价的。可以相互替代

          eg ${userInfo.id} ==  ${userInfo[id]}

          特别情况;例如在数组元素的获取,集合元素的获取

        2 EL中进行算术运算

          除 /或div

          求余  %或mod

          在这里值得注意的是+号两边的类型如果可以转换成数值类型的话就进行加运算,否则抛出异常

            3 在EL中判断对象是否为空

          ${empty expression}

        4 在EL中进行条件运算

        这一点和Java中的一样

         ${条件表达式 ?表达式1:表达式2}

        如果条件为true,则执行表达式1;否则执行表达式2

    四 EL的隐含对象

       EL提供了11个隐含对象,这些对象类似于JSP的内置对象,也是直接通过对象名进行操作的    

       1 页面上下文对象  pageContext

          这里除了application,config和pageContext)都可以访问Jsp内置核心对象

          eg: ${pageContext.request}

       2 访问作用域范围的隐含对象

          EL中提供了4个用于访问作用域范围的隐含对象,即pageScope,requestScope,sessionScope,applicationScope

         3 访问环境信息的隐含对象

          EL中提供了6个访问环境信息的隐含对象,即param,paramValues,header和headerValues对象,initParam对象

    五 自定义EL

      步骤:

        (1) 编写一个Java类,并在该类中编写公用的静态方法,用于实现自定义EL函数的具体功能

        (2)编写标签库描述文件,对函数进行声明。该文件的扩展名为.tld,被保存到Web应用的WEB-INF文件夹下

        (3)在JSP页面总引用标签库,并调用定义的EL函数,实现响应的功能。

           

      (1) Java代码

    package com.yc
    public class String{
           public static void main(String[] args){
                String newStr=str.replaceAll("
    ","<br>");
                newStr=newStr.replaceAll("","&nbsp;");
                ruturn newStr;
            }
    }

      (2) 编写标签库文件,名称为stringDel.tld

        

    <?xml version="1.0" encoding="GBK"?>
    <taglib 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 
        http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"     
        version="2.0">   
        <!-- 定义函数版本 -->
        <tlib-version>1.0</tlib-version>
        <uri>/stringDeal</uri>
      <!--定义函数名称-->
      <short-name>el<short-name>  

    <!-- 定义第一个函数 -->
        <function>
            <!-- 定义第一个函数:reverse -->
            <name>reverse</name>
            <!-- 定义函数处理类 -->
            <function-class>com.yc.StringDeal</function-class>
            <!-- 定义函数的对应方法 -->
            <function-signature>
                java.lang.String shiftEnter(java.lang.String)
            </function-signature>
        </function>
        
    </taglib>        

      (3) 编写index.jsp,使用自定义标签

    <%@ taglib uri="/stringDeal" prefix="el" %> 
    
      <body>
        ${shiftEnter("ad") }
      </body>

       

        

  • 相关阅读:
    Mac OS使用brew安装memcached
    Mac OS使用brew安装memcached
    Mac OS使用brew安装memcached
    JAVA学习之路 (五) 类
    JAVA学习之路 (五) 类
    JAVA学习之路 (五) 类
    JAVA学习之路 (五) 类
    常用的CSS小技巧
    常用的CSS小技巧
    常用的CSS小技巧
  • 原文地址:https://www.cnblogs.com/yaobolove/p/5184278.html
Copyright © 2011-2022 走看看