1、自定義EL函數php
1.編寫一個有公共靜態方法的Java類html
package foo; public class DiceRoller { //函數方法必須是公共且靜態的方法 public static int rollDice(){ return (int) ((Math.random()*6)+1); } }2.編寫一個標記庫文件(TLD),放到/WEB-INF目錄下java
<?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.2</tlib-version> <uri>DiceFunctions</uri> <function> <name>rollIt</name> <function-class>foo.DiceRoller</function-class> <function-signature>int rollDice()</function-signature> </function> </taglib>3.在JSP中放一個taglib指令web
<%@ taglib prefix="fn" uri="DiceFunctions" %>4.用EL表達式調用 ${prefix:name()}dom
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="fn" uri="DiceFunctions" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> ${fn:rollIt() } <br> </body> </html>注意:調用方法與標籤內的name值一致!jsp
2、算數、邏輯、關係操做符函數
算術邏輯符 | |
加法 | + |
減法 | - |
乘法 | * |
除法 | /和div 在EL中是能夠除0的,返回Infinity |
取模 | %和mod 不能對0取模,不然異常 |
邏輯操做符 | |
與(AND) | &&和and |
或(OR) | ||和Or |
非(NOT) | !和not |
關係操做符 | |
等於 | ==和eq |
不等於 | !=和ne |
小於 | <和lt |
大於 | >和gt |
小於等於 | <=和le |
大於等於 | >=和ge |
EL能夠很好的處理Null值:spa
unknown或NULL,即使找不到指定屬性/性質/鍵,也會顯示頁面code
在算術表達式中,EL把Null值看作是 0xml
在邏輯表達式中,EL把null看作是 false