java web自定义el函数

   在java web的jsp文件中可以使用el表达式来获取后台传递的数据,操作方便,有时候我们需要实现一些特殊的工能,这时候就用到了自定义el函数

   以一个转译html代码的函数为例,步骤如下:

  1、编写一个包含静态方法的类

package cn.itcast;


public class HtmlFilter {


	 public static String filter(String message) {


	        if (message == null)
	            return (null);


	        char content[] = new char[message.length()];
	        message.getChars(0, message.length(), content, 0);
	        StringBuffer result = new StringBuffer(content.length + 50);
	        for (int i = 0; i < content.length; i++) {
	            switch (content[i]) {
	            case '<':
	                result.append("<");
	                break;
	            case '>':
	                result.append(">");
	                break;
	            case '&':
	                result.append("&");
	                break;
	            case '"':
	                result.append(""");
	                break;
	            default:
	                result.append(content[i]);
	            }
	        }
	        return (result.toString());


	    }
}



2、在web-inf\目录下新建一个tld文件,对想被jsp页面调用的函数进行描述
<?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>A tag library exercising SimpleTag handlers.</description>
    <tlib-version>1.0</tlib-version>
    <short-name>SimpleTagLibrary</short-name>
    <uri>/itcast</uri>
    
    <function>
        <name>filter</name>
		<function-class>cn.itcast.HtmlFilter</function-class>
		<function-signature>java.lang.String filter(java.lang.String)</function-signature>
    </function>
</taglib>



3、在jsp页面导入标签库,并调用el函数
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/WEB-INF/itcast.tld" prefix="fn" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP '4.jsp' starting page</title>
  </head>
  
  <body>
  
  	${fn:filter("<a href=''>点点</a>") }
  	
  </body>
</html>

这样页面上会显示 <a href=''>点点</a>而不是一个链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值