JSP自定义1-自定义EL函数

原创 2016年11月10日 11:08:42

情景

list.jsp中要用到StringUtils.isEmpty(String)方法判断字符串”string”是否为空。可以这样判断:

list.jsp 页面中返回false

<%@ page language="java" pageEncoding="utf-8"%>
<%@page import="packages.util.StringUtils"%>
<html>
<body>
    <%=StringUtils.isEmpty("string")%>
</body>
</html>

使用自定义EL函数后还可以这样使用

list.jsp 页面中返回false

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="cfun" uri="http://www.myweb.com/tags/string-functions"%>
<html>
<body>
    ${cfun:isEmpty("string") }
</body>
</html>

自定义EL函数——说白了是个什么东西

实质就是在xml文件(.tld后缀)中重新定义了java代码,供jsp使用。在xml中需要定义的有:
1. 首先给自身定义个地址(资源),这样jsp才知道用@ taglib从哪里来引入。
2. 登记java代码中的函数,如:{别名:对应的java代码中的函数}
这样jsp中就可以用xml定义中的地址:登记的java函数来调用了,也就是${cfun:isEmpty("string") }

注意:xml文件(.tld)要放在WEB-INF下,不然tomcat找不到。还可以打包到jar里面(待自测、自验)。

例子

开发环境:tomcat6,jdk1.6
StringUtils.java

package taglib;
public class StringUtils {

    public static boolean isEmpty(String str){
        if("".equals(str)||str==null) return true;
        return false;
    }

    public int len2(String a){  //非静态方法。试了不能用
        return a.length();
    }

}

string-functions.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">
    <description>bala bala</description>
    <tlib-version>3.0</tlib-version>
    <short-name>cfun</short-name><!--和jsp调用时用的prefix没什么关系,就是jsp中的这个:<%@ taglib prefix="cfun" uri="http://www.sishuok.com/tags/string-functions"%>-->
    <uri>http://www.myweb.com/tags/string-functions</uri>
    <!--叮:首先给自身定义个地址(资源)-->
    <!--叮:登记java代码中的函数-->
    <function>
        <name>isEmpty</name><!--可以起个别名,如isEmp。-->
        <function-class>taglib.StringUtils</function-class>
        <function-signature>boolean isEmpty(java.lang.String)</function-signature>
    </function>
</taglib>

list.jsp

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="cfun" uri="http://www.myweb.com/tags/string-functions"%>

<%@ page isELIgnored="false"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>'tag-tld'</title>
        <base href="<%=basePath%>">
      </head>

  <body>

    ${cfun:isEmpty("abcd") }
  </body>
</html>

jsp中用地址:登记的java函数调用,就是那么个意思吧。

JSP2中EL自定义函数的简单示例

EL(表达式语言)除了可以使用基本的运算符外,还可以使用自定义函数开增强EL的功能。 1. 编写函数处理类: package com.huey.el; import java.text.Simple...

JSP自定义EL函数

一、首先需要编写一个类,方法必须是静态方法。 二、在WEB-INF目录下创建tld的文件,配置。 三、配置tld文件的模板为 ...

自定义EL函数

  • 2011年11月19日 10:57
  • 7KB
  • 下载

转载 !!!: EL表达式-自定义函数

表达式语言除了可以使用基本的运算符外,还可以使用自定义函数。通过使用自定义函数,加强了表达式语言的功能。  EL表达式函数,主要功能是完成对数据的修改,统一化格式;  开发步骤   ...

VBA入门第一讲-自定义函数.part1.rar

  • 2010年04月28日 11:39
  • 13.9MB
  • 下载

自定义el表达式函数

自定义函数自定义函数 创建一个普通java类,其中有我们自定义的方法 在WEB-INF下或者其除了lib,classes之外的任意子文件夹中创建一个.tld文件(taglib definition) ...

自定义EL函数

java方法 必须是静态的   package com.itast.base; import java.lang.reflect.Field; import java.util.List;...

EL表达式-自定义函数

表达式语言除了可以使用基本的运算符外,还可以使用自定义函数。通过使用自定义函数,加强了表达式语言的功能。  EL表达式函数,主要功能是完成对数据的修改,统一化格式;  开发步骤   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSP自定义1-自定义EL函数
举报原因:
原因补充:

(最多只允许输入30个字)