`
zyongking
  • 浏览: 58641 次
  • 性别: Icon_minigender_1
  • 来自: 湖北
社区版块
存档分类
最新评论

自定义el表达式

    博客分类:
  • j2ee
阅读更多

  在 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中

  

分享到:
评论

相关推荐

    JSTL自定义EL表达式

    自定义EL表达式是指开发人员根据自己的需求扩展EL的功能,创建自己的函数库。这通常通过实现` javax.el.FunctionMapper`接口来完成。`FunctionMapper`接口定义了一个`resolveFunction`方法,该方法会在解析EL表达式...

    自定义EL表达式

    自定义EL表达式是Java Web开发中的一个高级技巧,它允许开发者扩展标准的JSP Expression Language(EL)功能,以满足特定项目需求。EL是一种简洁的语法,用于在JSP页面中获取JavaBean属性或者调用Java方法。通过...

    EL表达式的使用详解

    EL 表达式的使用详解 EL 表达式是一种在 Java 服务器页面(JSP)中使用的表达式语言。它提供了一种简单的方式来访问和操作 Java 对象的属性。EL 表达式广泛应用于 JSP、Servlet、JSF 等 Web 开发技术中。本文将详细...

    jstl自定义标签,自定义EL表达式

    这次整理自定义标签主要是项目的需要,要将一些写死的url信息配置于配置文件中,这样发版的时候改动起来相当方便

    EL表达式的语法介绍

    EL 表达式语法介绍 EL 表达式是 Java 服务器页面(JSP)和 Java 服务器面板(JSF)中使用的一种表达式语言,用于在 Web 应用程序中实现动态内容。EL 表达式可以被解析成数值表达式和方法表达式,其中取值表达式用于...

    jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法

    当EL表达式被错误地当作字符串处理而不是被解析时,会导致其原本要展示的数据无法正确显示。这个问题在使用Java EE 5及以上版本时比较常见。 要解决这个问题,首先需要理解EL表达式的解析与web.xml配置文件中指定的...

    EL表达式(很全很强大)

    EL还支持调用自定义函数,可以在EL表达式中使用这些函数来执行更复杂的逻辑操作。函数调用的基本语法为`{fn: functionName(args)}`。 - **函数调用格式**:`{fn: functionName(arg1, arg2, ...)}` 这里`fn:`是...

    JSTL,EL表达式语法简介

    EL表达式通常在`${}`中书写,比如`${user.name}`用来获取名为`user`的对象的`name`属性。 **JSTL中的核心标签库(Core Tags)**包括用于控制流程、输出、URL处理、条件判断和迭代的标签。例如: - `&lt;c:if&gt;`用于条件...

    EL表达式语言 非常详细

    ### EL表达式语言详解 #### 9.1 概述 在JSP页面开发中,为了提高代码的可读性和可维护性,开发者们逐渐转向使用标签库来替代传统的Java片段语言来实现页面的显示逻辑。然而,自定义标签虽然灵活,但也容易导致重复...

    EL表达式详解+实例教程

    ### EL表达式详解及实例教程 #### 一、EL表达式概述 EL(Expression Language)表达式是一种简单且功能强大的表达式语言,它被设计用于在JavaServer Pages (JSP)中方便地访问JavaBean属性以及执行基本运算。通过学习...

    EL表达式使用详解

    EL表达式(Expression Language),是一种用于Java Web开发中方便数据存取的表达式语言,最初作为JSP标准标签库(JSTL)的一部分,是JSTL 1.0为了方便存取数据而自定义的语言。EL允许开发者在JSP页面中通过简洁的...

    在JSP页面用EL表达式调用一些函数

    自定义标签可以包装Java方法,EL表达式则调用这些标签,这样既保持了页面的清晰,又实现了业务需求。 总的来说,EL表达式在JSP页面中的使用极大地提升了开发效率和代码质量,减少了不必要的脚本代码,使JSP页面更加...

    EL表达式完整介绍,很好的一份学习资料

    本教程将深入介绍EL表达式的各个方面,帮助你成为一名熟练的JSF开发者。 一、EL基础 1. EL的语法:EL表达式通常以`#{}`包围,例如`#{bean.property}`,其中`bean`是对象实例,`property`是该对象的属性。EL会自动...

    JAVA JSP页面技术之EL表达式整理归纳总结

    EL表达式允许用户创建自定义函数,这些函数可以作为EL表达式的一部分被调用。开发人员可以编写Java方法,并将其注册为EL函数,之后在JSP页面中通过EL表达式调用这些方法。 EL表达式的启用与禁用: EL表达式默认是...

    EL表达式(转)

    ### EL表达式详解 #### 一、EL表达式概述 EL (Expression Language) 是 JavaServer Pages (JSP) 技术中的一个重要组成部分,用于简化页面上动态内容的处理。EL 表达式允许开发者直接在 JSP 页面中访问 JavaBean ...

    EL表达式详解

    - **适用范围**:EL表达式不仅可以在元素属性的值中使用,也可以在自定义或者标准动作元素的内容中使用,但在脚本元素中不可使用。 ##### 2. 运算符 EL提供了两种运算符用于存取数据:`.`(点运算符)和`[]`(方括号...

    Fel Javael表达式引擎

    Fel Java表达式引擎是一款轻量级且高效的开源表达式计算引擎。它的全称是FastExpressionLanguage,专门设计用于满足不断变化的功能需求和性能需求。Fel的执行方式主要依赖于函数,运算符如加减乘除等被视为Fel函数,...

    EL表达式基础学习

    EL表达式支持自定义表达式,使得数据展示更加灵活。在构建动态网页应用时,掌握EL表达式的用法是提升开发效率和页面质量的有效途径。 总结来说,EL表达式是JSP开发中的重要组成部分,它通过简化语法和灵活的数据...

Global site tag (gtag.js) - Google Analytics