博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
定义和使用EL函数
阅读量:6948 次
发布时间:2019-06-27

本文共 1871 字,大约阅读时间需要 6 分钟。

EL为表达式语言,在EL中,允许定义和使用函数。下面将介绍如何定义和使用EL的函数。

 1. 定义和使用函数

函数的定义和使用分为以下3个步骤:

(1)编写一个Java类,并在该类中编写公用的静态方法,用于实现自定义EL函数的具体功能。

(2)编写标签库描述文件,对函数进行声明。该文件的扩展名为.tld,被保存到Web应用的WEB-INF文件夹下。

(3)在JSP页面中引用标签库,并调用定义的EL函数,实现相应的功能。

下面通过一个具体的实例介绍EL函数的定义和使用。

例1.1 定义EL函数处理字符串中的回车换行和空白符。

(1)编写一个Java类,名称为StringDeal,将其保存在com.el包中,在该类中添加一个公用的静态方法shiftEnter(),在该方法中替换输入字符串中的回车换行符<br>,空格符为&nbsp;,最后返回新替换后的字符串。StringDeal类的完整代码如下:

package com.el;public class StringDeal {    public static String shiftEnter(String str){  //定义公用的静态方法        String newStr = str.replaceAll("\r\n", "
"); //替换回车换行符 newStr = str.replaceAll(" ", " "); //替换空格符 return newStr; }}

(2)编写标签库描述文件,名称为stringDeal.tld,并将其保存到WEB-INF文件夹下。关键代码如下:

1.0
stringDeal TLD
/stringDeal
shiftEnter
com.el.StringDeal
java.lang.String shiftEnter(java.lang.String)

参数说明:

<uri>标记:用于指定tld文件的映射路径。在应用EL函数时,需要使用该标记指定的内容。

<name>标记:用于指定EL函数说对应方法的方法名,通常与Java文件中方法名相同。

<function-class>标记:用于指定EL函数所对应的Java文件,这里需要包括包名和类名,例如,上面的的代码中,包名为com.el,类名为StringDeal。

<function-signature>标记:用于指定EL函数所对应的静态方法,这里包括返回值的类型和入口参数的类型。在指定这些类型时,需要使用完整的类型名。

(3)编写index.jsp文件,在该文件中添加一个表单及表单元素,用于收集内容信息。关键代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here

(4)编写表单的处理页deal.jsp文件,在该文件中应用上面定义的EL函数,对获取到的内容信息进行处理(主要是替换字符串中的回车换行符和空格符)后显示到页面中。deal.jsp文件的具体代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="wghfn" uri="/stringDeal" %><%request.setCharacterEncoding("UTF-8"); %>
显示结果 内容为:
${wghfn:shiftEnter(param.content)}

说明:在引用标签库时,指定的uri属性与标签库描述文件中的<uri>标记的值时相对应的。

程序运行结果如下所示:

转载地址:http://tskil.baihongyu.com/

你可能感兴趣的文章
Codeforces Round #382 (Div. 2)
查看>>
日历控件--My97DatePicker的使用
查看>>
k8s运行容器之Job(四)--技术流ken
查看>>
Android下打印调试堆栈方法(转)
查看>>
iOS7坐标上移44pt的解决
查看>>
面向对象基础
查看>>
Python全栈开发—第1站
查看>>
15 函数回调 模块
查看>>
iOS掉落回弹效果
查看>>
Eclipse--eclipse去除js(JavaScript)验证错误
查看>>
mac关闭和开启启动声
查看>>
浅谈WebService开发(一)
查看>>
学习Zookeeper之第2章Zookeeper安装
查看>>
java开始到熟悉100-102
查看>>
(译)我为什么用Go语言来做区块链——Syed Jafar Naqvi——Co-Founder/CEO at Karachain...
查看>>
随机生成一个不重复的身份码,包含数字和字母
查看>>
王彪-20162321-实验二 树
查看>>
HDU 1754 线段树裸题
查看>>
异常处理
查看>>
Mysql事件学习
查看>>