EL表达式

  • 全域查找指定的属性,若不存在,则输出空字符串,而不是null
  • EL的11个内置对象
    •   pageScope:
      • ${pageScope.name}
    •   requestScope:
      • ${requestScope.name}
    •       sessionScope:
      • ${sessionScope.name}
    •       applicationScope:
      • ${applicationScope.name}
    •   param:适用于单值的参数,它是一个Map,其中key为参数名,value为参数值
      • <% 
            String data = "fat rabbit"; 
            session.setAttribute("data", data);
         %> 
        ${data }
    • paramValues:适用于多值的参数,它是一个Map,其中key为参数吗,value为多个参数值
      • <%
            String data = "fat rabbit";
            char[] datas = data.toCharArray();
            session.setAttribute("datas",datas);
        %>
        ${datas[0] }

         

    • header:适用于单值请求头,它是一个Map,其中key为参数名,value为单值请求头
    • headerValues:适用于多值请求头,它是一个Map,其中key为参数名,value为多值请求头
    • initParam:获取<context-param>内的参数
      • <!-- 在web.xml配置 -->
         <context-param>
                <param-name>fat</param-name>
                <param-value>rabbit</param-value>
         </context-param>
        
        <!-- 在.jsp文件获取 -->
        ${initParam.fat }
    • cookie:Map<String,Cookie>类型,其中key是cookie的name,value是cookie对象
      • ${cookie.JSESSIONID.value}
    • pageContext:
      • ${pageContext.request.contextPath }
      •   注意:若没有配置context文件中的path,可能读取的path为""
  • JSTL提供的EL函数库
    • <%-- 导入标签库,pixfix表前缀 --%>
      <%-- 若报错:cannot resolve taglib with uri,
           解决办法:导入jstl.jar和standard.java --%>
      <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"  %>

       

  • EL自定义函数库
    •   
      /**
       * 类中可以定义0-N个方法,但必须是static,且有返回值
       */
      public class TestFunction {
      
          public static String func(){
              return "fat rabbit";
          }
      }
      
      
      <!-- 创建一个tld文件 -->
      
      <?xml version="1.0" encoding="UTF-8" ?>
      <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">
          <!-- 说明 -->
          <description>JSTL 1.1 functions library</description>
          <!-- 显示名称 -->
          <display-name>JSTL functions</display-name>
          <!--  -->
          <tlib-version>1.0</tlib-version>
          <!--  -->
          <short-name>muriel</short-name>
          <!--  -->
          <uri>http://www.muriel.cn/el.functions</uri>
          
          <function>
              <name>functionA</name>
              <function-class>com.muriel.fn.TestFunction</function-class>
              <function-signature>java.lang.String func()</function-signature>
          </function>
      </taglib>
      
      
      <!-- 在jsp中可以导入自定义的函数库即其方法-->
      
      
      <%@ taglib prefix="f" uri="/WEB-INF/tlds/test.tld" %>
      <%--注意方法名必须是tld中配置function里面的name,不然就会报The function *** cannot be located with the specified prefix错误 --%>
      ${f:functionA()}

       

 

posted @ 2018-12-17 16:11  好胖的兔子  阅读(385)  评论(0编辑  收藏  举报