JSP複習(三):EL函數和算數、邏輯、關係操做符

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

相關文章
相關標籤/搜索