在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现。鉴于此,出现了 JSTL ( JSP Standard Tag Library )。大多数 JSP 页面逻辑提供了实现的 JSTL 技术,该技术本身就是一个标签库。
Sun 公司 Java 规范标准的 JSTL 由 apache jakarta 组织负责维护。作为开源的标准技术,它一直在不断地完善。 JSTL 的发布包有两个版本: Standard-1.0 Taglib 、 Standard-1.1 Taglib ,它们在使用时是不同的。
EL 是从 JavaScript 脚本语言得到启发的一种表达式语言,它借鉴了 JavaScript 多类型转换无关性的特点。在使用 EL 从 scope 中得到参数时可以自动转换类型,因此对于类型的限制更加宽松。
sun公司提供的el表达式中,并非无所不能,就比如说里面虽然能也计算,但它不能写方法,如果我想用一个方法或者其它的什么,当自带EL表达式做不到怎么办,没关系因为el表达式可以自定义,下面就来说一下如何自定义一个el表达式.
1.需要你写一个类,这个类就是用来在jsp页面上面调用的,而且该类必须为静态的.
如:
package com.exam.jpart.tag.el;
import java.util.Map;
import java.util.Set;
/**
*
* @author wind'
*
* @date 2009-9-1
*
* @file com.exam.jpart.tag.el/MapEL.java
*
*/
public class MapEL {
/**
*
* @param map
* 为一个Map对象
* @return Map键的集合
*/
@SuppressWarnings("unchecked")
public static Set keySet(Map map) {
if (map == null) {
return null;
}
return map.keySet();
}
/**
*
* @param map
* 为一个Map对象
* @param key
* 为一个Map对象中的key
* @return 返回Map中的一个对象
*/
@SuppressWarnings("unchecked")
public static Object get(Map map, String key) {
if (map == null || key == null || "".equals(key)) {
return null;
}
return key;
}
}
大家可以看到上面的这个类非常简单,就是实现一些简单的东西,不过到这里,我想大家又要问了,就这个就可以了吗,那我在界面上面怎么去调用这个方法,难道又要用<% %>这种小脚本吗.
回答:no.
下面我们编写一个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/j2ee web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>w</shortname>
<uri>
http://zyongking.iteye.com/admin
</uri>
<info>风中叶'</info>
<function>
<name>keySet</name>
<function-class>
com.exam.jpart.tag.el.MapEL
</function-class>
<function-signature>
java.util.Set keySet(java.util.Map)
</function-signature>
<description>获取Map中的所有键,返回一个Set集合</description>
</function>
<function>
<name>get</name>
<function-class>
com.exam.jpart.tag.el.MapEL
</function-class>
<function-signature>
java.lang.Object
get(java.util.Map,java.lang.String)
</function-signature>
<description>获取Map中所对应键的值,返回一个Object对象
</description>
</function>
</taglib>
就只需要编写上面的这种文件就可以了,在这里对文件不多做解释,非常简单,大家一看应该就能明白.
下面就是在界面上面调用了.
调用方式如:
<%@ taglibprefix="w"uri="/WEBINF/classes/com/exam/jpart/tag/el/w.tld" %>//这是调入文件,因为这里我只放到项目中,并没有打包,所以大家可以看到我的uri是路径,并非我在前面所写的uri,大家如果把它打包就可以写我前面所写的uri
${w:keySet(sessionScope.map)}//我的map对象存放在session中
分享到:
相关推荐
自定义EL表达式是指开发人员根据自己的需求扩展EL的功能,创建自己的函数库。这通常通过实现` javax.el.FunctionMapper`接口来完成。`FunctionMapper`接口定义了一个`resolveFunction`方法,该方法会在解析EL表达式...
自定义EL表达式是Java Web开发中的一个高级技巧,它允许开发者扩展标准的JSP Expression Language(EL)功能,以满足特定项目需求。EL是一种简洁的语法,用于在JSP页面中获取JavaBean属性或者调用Java方法。通过...
EL 表达式的使用详解 EL 表达式是一种在 Java 服务器页面(JSP)中使用的表达式语言。它提供了一种简单的方式来访问和操作 Java 对象的属性。EL 表达式广泛应用于 JSP、Servlet、JSF 等 Web 开发技术中。本文将详细...
这次整理自定义标签主要是项目的需要,要将一些写死的url信息配置于配置文件中,这样发版的时候改动起来相当方便
EL 表达式语法介绍 EL 表达式是 Java 服务器页面(JSP)和 Java 服务器面板(JSF)中使用的一种表达式语言,用于在 Web 应用程序中实现动态内容。EL 表达式可以被解析成数值表达式和方法表达式,其中取值表达式用于...
当EL表达式被错误地当作字符串处理而不是被解析时,会导致其原本要展示的数据无法正确显示。这个问题在使用Java EE 5及以上版本时比较常见。 要解决这个问题,首先需要理解EL表达式的解析与web.xml配置文件中指定的...
EL还支持调用自定义函数,可以在EL表达式中使用这些函数来执行更复杂的逻辑操作。函数调用的基本语法为`{fn: functionName(args)}`。 - **函数调用格式**:`{fn: functionName(arg1, arg2, ...)}` 这里`fn:`是...
EL表达式通常在`${}`中书写,比如`${user.name}`用来获取名为`user`的对象的`name`属性。 **JSTL中的核心标签库(Core Tags)**包括用于控制流程、输出、URL处理、条件判断和迭代的标签。例如: - `<c:if>`用于条件...
### EL表达式语言详解 #### 9.1 概述 在JSP页面开发中,为了提高代码的可读性和可维护性,开发者们逐渐转向使用标签库来替代传统的Java片段语言来实现页面的显示逻辑。然而,自定义标签虽然灵活,但也容易导致重复...
### EL表达式详解及实例教程 #### 一、EL表达式概述 EL(Expression Language)表达式是一种简单且功能强大的表达式语言,它被设计用于在JavaServer Pages (JSP)中方便地访问JavaBean属性以及执行基本运算。通过学习...
EL表达式(Expression Language),是一种用于Java Web开发中方便数据存取的表达式语言,最初作为JSP标准标签库(JSTL)的一部分,是JSTL 1.0为了方便存取数据而自定义的语言。EL允许开发者在JSP页面中通过简洁的...
自定义标签可以包装Java方法,EL表达式则调用这些标签,这样既保持了页面的清晰,又实现了业务需求。 总的来说,EL表达式在JSP页面中的使用极大地提升了开发效率和代码质量,减少了不必要的脚本代码,使JSP页面更加...
本教程将深入介绍EL表达式的各个方面,帮助你成为一名熟练的JSF开发者。 一、EL基础 1. EL的语法:EL表达式通常以`#{}`包围,例如`#{bean.property}`,其中`bean`是对象实例,`property`是该对象的属性。EL会自动...
EL表达式允许用户创建自定义函数,这些函数可以作为EL表达式的一部分被调用。开发人员可以编写Java方法,并将其注册为EL函数,之后在JSP页面中通过EL表达式调用这些方法。 EL表达式的启用与禁用: EL表达式默认是...
### EL表达式详解 #### 一、EL表达式概述 EL (Expression Language) 是 JavaServer Pages (JSP) 技术中的一个重要组成部分,用于简化页面上动态内容的处理。EL 表达式允许开发者直接在 JSP 页面中访问 JavaBean ...
- **适用范围**:EL表达式不仅可以在元素属性的值中使用,也可以在自定义或者标准动作元素的内容中使用,但在脚本元素中不可使用。 ##### 2. 运算符 EL提供了两种运算符用于存取数据:`.`(点运算符)和`[]`(方括号...
Fel Java表达式引擎是一款轻量级且高效的开源表达式计算引擎。它的全称是FastExpressionLanguage,专门设计用于满足不断变化的功能需求和性能需求。Fel的执行方式主要依赖于函数,运算符如加减乘除等被视为Fel函数,...
EL表达式支持自定义表达式,使得数据展示更加灵活。在构建动态网页应用时,掌握EL表达式的用法是提升开发效率和页面质量的有效途径。 总结来说,EL表达式是JSP开发中的重要组成部分,它通过简化语法和灵活的数据...