自定义EL函数

   在jstl包中,url:http://java.sun.com/jsp/jstl/functions是自带的el函数库,如果这些不能满足你的需要,就可以自己动手编写自定义的el函数。

编写一个转义的el函数
第1步、编写一个带有静态方法的java类(el只能调用静态方法)

//http转义代码

public classHttpFilter

{

   public static String filter(Stringmessage)

   {

      if (message == null)

         return (null);

      char content[] = new char[message.length()];

      message.getChars(0,message.length(), content, 0);

      StringBufferresult = newStringBuffer(content.length + 50);

      for (int i = 0; i < content.length; i++)

      {

         switch (content[i])

         {

         case '<':

            result.append("&lt;");

            break;

         case '>':

            result.append("&gt;");

            break;

         case '&':

            result.append("&amp;");

            break;

         case '"':

            result.append("&quot;");

            break;

         default:

            result.append(content[i]);

         }

      }

      return (result.toString());

   }

}

第2步、在web-inf\目录下新建一个tld文件zhong.tld,对函数进行描述

<?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/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"

    version="2.0">

   <description>自定义的e函数</description>

   <tlib-version>1.0</tlib-version>

   <short-name>SimpleTagLibrary</short-name>

   <uri>/zhong</uri>

   

   <function>

        <name>filter</name>

      <function-class>cn.zhong.web.el.HttpFilter</function-class>

      <function-signature>java.lang.String filter(java.lang.String)</function-signature><!-- 返回值  参数类型 -->

<!-- <function-signature>java.lang.String filter(java.lang.String,int[],java.lang.String[],java.untils.List)</function-signature>-->

   </function>

</taglib>

第3步、在jsp页面上使用

<%@ page language="java"import="java.util.*" pageEncoding="UTF-8"%>

<%@tagliburi="/WEB-INF/itcast.tld"prefix="myfn" %>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN">

<html>

 <head>

   <title>自定义el函数测试</title>

 </head>

 

 <body>

 

  ${myfn:filter("<a href=''>点点</a>")}

 

 </body>

</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值