`
MauerSu
  • 浏览: 513492 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使JSP自定义标签支持EL表达式(${})

 
阅读更多

源:http://www.iteye.com/topic/187280

评:

<%@taglib prefix="a" uri="/WEB-INF/tags/aa.tld" %>

  1. <%  
  2.     String str = "这是EL表达式从 request中取出来的文字!";  
  3.     request.setAttribute("str",str);  
  4. %>  
  5. <a:rim title="${str }"

1  在tld文件如下配置:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>aa</short-name>
    <uri>http://java.sun.com/jstl/core</uri>
    <display-name>J2EE Common Development Framework</display-name>


    <tag>
        <name>rim</name>
        <tag-class>com.RimTag</tag-class>
        <body-content>JSP</body-content>
        <attribute>
            <name>title</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
    </tag>
</taglib>

 

2  对接收到的EL表达式处理

 

public class RimTag extends OutSupport {
    private Object title = "";

    public void setTitle(final Object title) throws JspException {
        // 对EL表达式的支持
        this.title = ExpressionEvaluatorManager.evaluate("title",
                title.toString(), Object.class, this, pageContext);
    }

    public Object getTitle() {
        return title;
    }

    public int doStartTag() throws JspException {

        JspWriter w = pageContext.getOut();
         try {
            w.write(title.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
        return SKIP_BODY;
    }
}

 这里处理${}的是org.apache.taglibs.standard.lang.support下,有个叫 ExpressionEvaluatorManager类,

 ExpressionEvaluatorManager.evaluate有五个参数。第一个title属性的名字,本例用"title"就行。 第二个要求字符串,通常简单调用输入对象的toString方法。第三个是类,通常用Object.class。第四个用this即可,第五个是 pageContext变量。

注意:当你的tag属性支持el表达式时,你必须把它声明为Object对象:本例中是 private Object    title    = "标题";

这样工作就做完了,自定义标签就可以处理 ${}了.

分享到:
评论

相关推荐

    JSTL自定义EL表达式

    自定义EL表达式极大地扩展了JSTL的能力,使开发者能够创建符合项目需求的定制化解决方案,同时保持代码的简洁和规范。通过深入理解和实践自定义EL表达式,你可以更好地驾驭JSTL,提升Java Web应用的开发效率和质量。

    jsp学习总结jsp基础自定义标签eL表达式

    ### JSP学习总结:基础、自定义标签与EL表达式 #### JSP概念与特性 JSP(Java Server Pages)是一种服务器端脚本语言,它允许开发者在HTML文档中嵌入Java代码,使得网页能够根据不同的请求动态生成内容。JSP文件在...

    EL表达式的使用详解

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

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

    JSTL(JavaServer Pages Standard Tag Library)提供了一套核心标签库,增加了流程控制和循环控制功能,通过自定义函数等增强功能,基本上可以替代原有的scriptlet编程方式,使JSP页面的格式更加统一和规整。...

    EL表达式的语法介绍

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

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

    Java JSP页面技术之EL表达式整理归纳总结的知识点如下: EL表达式的概念和作用: EL表达式,全称Expression Language(表达式语言),是一种在JSP(Java Server Pages)技术中使用到的,用于简化Java Web应用程序中...

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

    EL与JSP自定义标签** EL还可以与自定义JSP标签结合使用,实现更复杂的业务逻辑。自定义标签可以包装Java方法,EL表达式则调用这些标签,这样既保持了页面的清晰,又实现了业务需求。 总的来说,EL表达式在JSP页面...

    JSP应用开发-EL表达式与JSTL标签.pptx

    JSP应用开发-EL表达式与JSTL标签 EL表达式(Expression Language)是一种用于JSP页面中的语言,主要用于替换JSP页面中的脚本表达式,从JSP隐式对象中提取java对象、获取数据。EL表达式的语法结构是:“${变量或...

    jsp2.0 自定义标签和自定标签函数

    在JSP页面的EL表达式中,可以直接调用自定义函数,如`${myFunction('参数')}`。 **三、示例解析** "jsp 2.0自定义标签.doc"文件很可能包含了一个关于如何创建和使用自定义标签的详细教程。它可能涵盖了从创建TLD...

    JSTL,EL表达式语法简介

    **JSTL与EL的协同工作**:在JSP页面中,EL表达式通常与JSTL标签一起使用,EL负责数据的获取和计算,而JSTL标签则负责页面的逻辑控制。例如,使用EL表达式和`&lt;c:if&gt;`标签可以实现简单的条件判断: ```jsp ${user != ...

    自定义EL表达式

    自定义EL表达式 EL表达式(Expression Language)是一种用于Web应用程序的表达式语言,主要用于替换JSP页面中的脚本表达式,以从各种类型的Web域中检索Java对象、获取数据。EL表达式可以获取数据、执行运算和逻辑...

    jsp自定义标签库注意事项

    【jsp自定义标签库注意事项】 在Java服务器页面(JSP)开发中,自定义标签库是一种强大的工具,它能够帮助开发者创建可重用的代码片段,提高代码的可读性和可维护性。以下是对JSP自定义标签库的详细解释和使用注意...

    jsp自定义标签编写的分页

    在这个例子中,`messageCount`和`currentPage`通常是从后台服务获取的数据,通过EL(Expression Language)表达式传递给自定义标签。 自定义标签的优势在于代码复用和分离关注点,使得业务逻辑和视图层更加清晰。在...

    JavaWeb-11 JSP&EL表达式

    此外,配合JSTL(JavaServer Pages Standard Tag Library)库,EL表达式可以使JSP页面更加整洁,提高可读性和维护性。JSTL提供了一系列预定义的标签,如`c:forEach`用于遍历集合,`fmt:formatDate`用于格式化日期等...

    掌握jsp自定义标签chm版

    自定义标签可以与Servlet、JavaBean、EL(表达式语言)和JSTL(JavaServer Pages Standard Tag Library)等技术结合使用,增强JSP应用的功能和性能。 10. **最佳实践** - **设计清晰的API**:确保自定义标签接口...

    EL表达式语言 非常详细

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

    EL表达式使用详解

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

    EL表达式(很全很强大)

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

    EL表达式和jsp JSTL标签库的总结

    通过使用`&lt;jsp:useBean&gt;`标签,可以在JSP页面中创建并使用自定义JavaBean对象,并通过EL表达式来访问这些对象的属性。例如,假设存在两个JavaBean类`A`和`B`,其中`A`包含一个类型为`B`的对象`b`,那么可以通过下面...

Global site tag (gtag.js) - Google Analytics