在EL表达式中自定义方法来处理数据的最完整源码
问题描述:
有时我们要在jsp页面对数据进行一些复杂的处理,虽然jsp页面中可以书写java代码,但是会影响美观,代码比较混乱。这是我们就需要在el表达式中使用自定义的方法把要处理的数据传到后端用java来处理。
解决方法:
1.在WEB-INF下的tlds目录下新建一个fns.tld文件,源码如下:
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
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
>JSTL 1.1 functions library</
description
>
<
display-name
>JSTL functions sys</
display-name
>
<
tlib-version
>1.1</
tlib-version
>
<
short-name
>fns</
short-name
>
<
function
>
<
description
>获取配置</
description
>
<
name
>getConfig</
name
>
<
function-class
>com.thinkgem.jeesite.common.config.Global</
function-class
>
<
function-signature
>java.lang.String getConfig(java.lang.String)</
function-signature
>
<
example
>${fns:getConfig(key)}</
example
>
</
function
>
</
taglib
>
2.新建上面tld文件中引用到的java处理类 Global.java
public class Global {
public static String getConfig(String key) {
//此处省略数据处理代码
return "雅逸书屋网";
}
}
3.页面中引入tld文件
在页面的<%@ page contentType="text/html;charset=UTF-8" %>后引入
<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %>
4.使用方法
使用方法和jstl的fn方法一样,是不是很简单,快点试试吧!
<h1 class="form-signin-heading">${fns:getConfig('productName')}</h1>