表达式是JSP2的一个重要特性,它是仅仅是一种数据访问语言,可以方便地访问应用程序的数据,避免使用JSP脚本。
注:如果想系统认为$是符号,则需要在前面加转义字符"\"
1、表达式语言支持算术运算符和逻辑运算符。
2、表达式语言有11个内置对象
pageContext
pageScope
requestScope
sessionScope
applicationScope
param
paramValues 属性值为数组
header 请求头的属性值
headerValues 数组
initParam Web应用初始化参数
cookie
3、表达式语言的自定义函数
表达式语言除了可以使用基本的运算符外,还可以使用自定义函数。通过自定义函数,能够大大加强表达式语言的功能。自定义函数的开发步骤非常类似标签的开发步骤,定义方式也几乎一样。区别在于自定义标签直接在页面上生成输出,而自定义函数则需要在表达式语言中使用。
注:函数功能大大扩充了EL的功能,EL本身只是一种数据访问语言,因此它不支持调用方法。如果需要在EL中进行更复杂的处理,就可以通过函数来完成。函数的本质是:提供一种语法允许在EL中调用某个类的静态方法。
下面介绍表达式语言中自定义函数的开发步骤。
1)开发函数处理类:函数处理类就是函数类,这个普通类中包含若干个静态方法,每个静态方法都可以定义成一个函数。实际上这个步骤也是可省略的——完全可以直接使用JDK或者其他项目提供的类,只要这个类包含静态方法即可。
public class Functions { public static String reverse(String text) { return new StringBuffer(text).reverse().toString(); } public static int countChar(String text) { return text.length(); } }
2)使用标签库定义函数:定义函数的方法与定义标签的方法大致相似。增加标签是在<taglib.../>下添加<tag.../>元素,而添加函数则是
添加<function.../>
<?xml version="1.0" encoding="GBK" ?> <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"> <!-- TLD版本 --> <tlib-version>1.0</tlib-version> <!-- 标签库的名称 --> <short-name>mytaglib</short-name> <!-- 标签库的URI,唯一 --> <uri>http://www.crazyit.org/mytaglib</uri> <!-- 定义EL函数 --> <function> <!-- 定义函数名 --> <name>reverse</name> <!-- 定义函数的处理类 --> <function-class>org.test.Functions</function-class> <!-- 定义函数的实现方法 --> <function-signature>java.lang.String reverse(java.lang.String)</function-signature> </function> </taglib>
3)在JSP页面的EL中使用函数:一样需要先导入标签库,然后再使用函数。
<!-- 指定错误页面error.jsp --> <%@ page language="java" errorPage="error.jsp" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="java.util.*" %> <%@ page import="org.test.*" %> <!-- 如果想要支持EL语言必须把这个EL支持打开,否则默认是不支持的 如果想整个服务下都支持,则需要在Web服务器上设置 --> <%@ page isELIgnored="false" %> <!-- 1、引入需要使用的标签库,uri是标签库的唯一标识,prefix为前缀 --> <%@ taglib uri="http://www.crazyit.org/mytaglib" prefix="mytag" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>pageContext测试</title> </head> <body> <!-- 使用EL自定义函数 --> <span>${mytag:reverse('abc') }</span> </body> </html>
相关推荐
在JSP EL中,自定义函数可以用来创建可重用的代码片段,提高开发效率,并且使页面逻辑更加清晰。 EL是JSP2.0引入的一种轻量级脚本语言,主要用于访问JavaBeans属性和执行简单的运算。然而,它的基本功能可能不足以...
EL自定义函数可以让开发者扩展EL的功能,通过定义自己的函数来处理复杂的逻辑,而无需在JSP页面中编写Java代码片段。接下来将详细介绍EL自定义函数的实现步骤,并通过一个具体的示例来展示如何实现。 #### 1. 开发...
在Java Web开发中,Expression Language(EL)是一种强大的表达式语言,用于在JSP页面、JSF组件或者Servlet中访问和操作JavaBeans属性。EL提供了一种简洁的方式来获取和设置对象的属性,以及调用对象的方法。然而,...
总之,“EL自定义函数”这个主题涉及了Java Web开发中的一个重要概念,它允许开发者扩展EL的能力,以满足特定的业务需求。结合源码分析和实际的测试案例,可以加深对这一技术的理解并提高实际应用能力。
在JSP页面的EL表达式中,可以直接调用自定义函数,如`${myFunction('参数')}`。 **三、示例解析** "jsp 2.0自定义标签.doc"文件很可能包含了一个关于如何创建和使用自定义标签的详细教程。它可能涵盖了从创建TLD...
自定义函数类似于Java中的方法,可以在JSP表达式语言(EL, Expression Language)中直接调用。创建自定义函数的过程如下: 1. 创建函数类(Function Class):实现`javax.servlet.jsp.jstl.core.Functions`接口或者...
EL(Expression Language,表达式语言)是JavaServer Pages(JSP)技术的一个重要组成部分,它的主要目的是简化JSP页面中的脚本编写,使得开发者能更专注于页面展示逻辑,而不是底层的Java代码。EL表达式通常用于...
4. 在JSP页面中使用:在JSP页面中,你可以像使用内置EL函数一样,通过`my:myFunction`这种形式调用你的自定义函数,其中`my`是函数库的前缀,`myFunction`是函数名。 举例来说,假设我们有一个自定义函数库,名为`...
模糊查:关键字加红色((用el自定义函数给关键字加颜色的方法[作用:直接用于jsp页面输出]
2. 开发EL自定义函数的步骤: - **编写静态方法**:首先,创建一个公共类(public class)并在其中定义一个或多个带有public修饰符的静态方法。这些方法将作为EL自定义函数的核心实现。例如,在上面的示例中,创建...
EL(Expression Language)表达式是Java Web开发中常用的一种简洁的脚本语言,主要用于在JSP页面中获取对象的值或调用方法。它简化了JavaBean属性的访问方式,提高了代码的可读性和维护性。EL表达式的功能可以通过...
在Web开发中,EL(Expression Language)是一种用于在JSP页面中访问JavaBean属性和执行简单操作的语言。它简化了视图层与模型层的数据交互。然而,有时我们需要在EL表达式中调用Java方法,这通常是通过自定义EL函数...
2. **编写TLD文件**:TLD(Tag Library Descriptor)文件是描述你的自定义函数库的XML文件。在这个文件中,你需要指定函数的URI(Uniform Resource Identifier),这将帮助JSP找到你的TLD文件。此外,你还需要定义`...
JSTL(JavaServer Pages Standard Tag Library)提供了一套核心标签库,增加了流程控制和循环控制功能,通过自定义函数等增强功能,基本上可以替代原有的scriptlet编程方式,使JSP页面的格式更加统一和规整。...
最后,我们需要在JSP页面中引入我们的自定义函数库,并在EL表达式中使用它。在`elTest.jsp`页面中,我们添加以下代码: ```jsp ... ${m:getFruit("10") } ``` 这里,`prefix="m"`是我们为自定义函数库选择的前缀,...
4. **函数支持**:EL支持自定义函数库,可以调用Java类库中的方法,增强了其功能性和灵活性。 5. **与JSF集成**:EL是JavaServer Faces(JSF)框架的核心部分,可以方便地与JSF组件进行交互。 **EL表达式的类型** ...
在Java Web开发中,特别是在使用JSP技术时,我们经常需要使用到一些预定义好的标签库来简化页面的开发过程。JSTL(JavaServer Pages Standard Tag Library)和Struts框架所提供的标签库就是这样的例子。为了能在JSP...
JSTL,全称JavaServer Pages Standard Tag Library,是Java服务器页面的标准标签库,它提供了一系列的标签来简化JSP开发,使得开发者可以使用更易读、易维护的标签代替复杂的Java代码。JSTL主要包含核心标签库(Core...
- 字符串连接:EL不支持直接使用"+"进行字符串拼接,需要转换为数字类型或使用自定义函数。 - 访问数据:使用`.`或`[]`操作符,`[]`可以访问集合、数组或Bean属性。例如,`${sessionScope.user.sex}`和`${...