JSP复习(三):EL函数和算数、逻辑、关系操作符

一、自定义EL函数

1.编写一个有公共静态方法的Java类

package foo;

public class DiceRoller {
	//函数方法必须是公共且静态的方法
	public static int rollDice(){
		return (int) ((Math.random()*6)+1);
	}
}

2.编写一个标记库文件(TLD),放到/WEB-INF目录下

<?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指令

<%@ taglib prefix="fn" uri="DiceFunctions" %>

4.用EL表达式调用 ${prefix:name()}

<%@ 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值一致!

二、算数、逻辑、关系操作符

算术逻辑符 
加法+
减法-
乘法*
除法/和div    在EL中是可以除0的,返回Infinity
取模%和mod 不能对0取模,否则异常
逻辑操作符 
与(AND)&&和and
或(OR)||和Or
非(NOT)!和not
关系操作符 
等于==和eq
不等于!=和ne
小于<和lt
大于>和gt
小于等于<=和le
大于等于>=和ge

EL可以很好的处理Null值:

unknown或NULL,即便找不到指定属性/性质/键,也会显示页面

在算术表达式中,EL把Null值看做是 0

在逻辑表达式中,EL把null看做是 false

转载于:https://my.oschina.net/5365437/blog/143683

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值