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函数调用,就是那么个意思吧。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JSP自定义EL函数

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

自定义EL函数

EL自定义函数

jstl函数自定义el函数 JSTL fn函数库  使用时必须引入: * fn:contains(m,n) 如果参数m中包含参数n,返回true *...

EL自定义简单函数实例

一个EL自定义函数的使用,需要三个文件。 1.具体实现方法(该方法要求是静态static的): package com.htxx.utils; public class ElUtil { publ...

自定义EL函数

1.编写Java类 class ELTag { /** * 求百分比,保留到小数点后两位 * @param num1 * @param num2 * ...

java web自定义el函数

在java web的jsp文件中可以使用el表达式来获取后台传递的数据,操作方便,有时候我们需要实现一些特殊的工能,这时候就用到了自定义el函数    以一个转译html代码的函数为例,步骤如下: ...

自定义EL函数

自定义EL函数分4个步骤: 1,先写一类,类中写好
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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