JavaWeb学习笔记之EL表达式

2018-05-14  本文已影响42人  codingXiaxw

title: JavaWeb学习笔记之EL表达式
tags: Java Web
categories: EL


1.概述

EL,即Expression Language。在JavaWeb中属于JSP技术。

JSP中的表达式:Java脚本表达式<%=Java表达式%>;EL表达式${EL表达式}

JavaWeb中最好不要在JSP中写Java代码,所以用EL表达式来替代Java表达式。

2.语法及用法

2.1获取某个对象的值,并将其输出到页面上。

${stu.name}相当于:

<%  
Student stu=pageContext.getAttribute("stu");  
if(stu!=null) out.println(stu.getName());  
%>

2.2逻辑和数学运算

2.3、11个内置对象

EL内置对象(或隐式对象),即在EL表达式中可以直接调用的对象。总结起来就是有一个JSP对象,十个Map对象。

2.4自定义EL函数。

第一步:定义一个有静态方法的类。

    package net.codingXiax.util;  
      
    public class StringUtil{  
      public static String toUppercase(String str){  
         return "字符串";  
         }  
       }

第二步:配置tld。

在Web-INF目录下(也可以在其他目录下,该目录下建立安全性更高),建立一个扩展名为tld的xml文件。

    <?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">  
            <tlib-version>1.0</tlib-version>  
            <short-name>myfn</short-name>  
            <uri>http://www.yrom.net/jsp/string/fn</uri>  
            <function>  
                  <name>toUppercase</name>  
                  <function-class>net.yrom.util.StringUtil</function-class>  
                  <function-signature>java.lang.String toUpperCase( java.lang.String )</function-signature>  
            </function>  
    </taglib>

第三步:配置web.xml.

如果tld文件是在Web-INF目录或类路径下,此步可跳过。

    <jsp-config>
    <taglib>
        <taglib-uri>http://www.yrom.net/jsp/string/fn</taglib-uri>
        <taglib-location>/WEB-INF/myfn.tld</taglib-location>
    </taglib>  
    </jsp-config>

第四步:在JSP中使用。

注意应先用taglib指令引入该uri。

    <%@ taglib uri="/该tld所在位置" prefix="myfn" %>  
    ...  
    <body>  
    <%  
       pageContext.setAttribute("a","aaa");  
    %>  
       ${myfn:toUppercase(a)}  
    </body>  
    ...  

2.5JSTL标签库

JSTL标签库将在下篇文章JavaWeb学习笔记之JSTL标签库中详细介绍。

2018.3.19更

欢迎加入我的Java交流1群:659957958。群里目前已有1800人,每天都非常活跃,但为了筛选掉那些不怀好意的朋友进来搞破坏,所以目前入群方式已改成了付费方式,你只需要支付9块钱,即可获取到群文件中的所有干货以及群里面各位前辈们的疑惑解答;为了鼓励良好风气的发展,让每个新人提出的问题都得到解决,所以我将得到的入群收费收入都以红包的形式发放到那些主动给新手们解决疑惑的朋友手中。在这里,我们除了谈技术,还谈生活、谈理想;在这里,我们为你的学习方向指明方向,为你以后的求职道路提供指路明灯;在这里,我们把所有好用的干货都与你分享。还在等什么,快加入我们吧!

2018.4.21更:如果群1已满或者无法加入,请加Java学习交流2群:305335626 。群2作为群1的附属群,除了日常的技术交流、资料分享、学习方向指明外,还会在每年互联网的秋春招时节在群内发布大量的互联网内推方式,话不多说,快上车吧!


3.联系

If you have some questions after you see this article,you can tell your doubts in the comments area or you can find some info by clicking these links.

上一篇下一篇

猜你喜欢

热点阅读