当前位置:首页 > 开发 > Web前端 > 前端 > 正文

如何在Java自定义标签中让自定义的标签属性正确接收EL表达式对象

发表于: 2008-10-17   作者:crabdave   来源:转载   浏览次数:
摘要: 如何在Java自定义标签中让自定义的标签属性正确接收EL表达式对象      我们在项目开发中为了更方便灵活的使用Java自定义标签,往往需要让自定义的标签属性接收一些EL表达式对象,所幸的是apache为我们提供了简单的实现方式。需要的jar包:jstl.jarstandard.jar    其实这两个包就是我们在使用jst

如何在Java自定义标签中让自定义的标签属性正确接收EL表达式对象

     我们在项目开发中为了更方便灵活的使用Java自定义标签,往往需要让自定义的标签属性接收一些EL表达式对象,所幸的是apache为我们提供了简单的实现方式。
需要的jar包:
jstl.jar
standard.jar
    其实这两个包就是我们在使用jstl时所需的两个包。
    要接收EL表达式对象,首先得在标签的实现类文件中将这个属性的对象类型设置为Object类型,在set、get方法中,set方法需要引入apache的类:
import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;
    这个类中有一个evaluate 方法,当el表达式作为参数传入时,调用这个方法,在tag内即可自动把el表达式转化成所需要的对象。
    你只需在set方法里如下调用:
 public void setValue(Object value)throws JspException
 {
  this.value = ExpressionEvaluatorManager.evaluate(
            "value", value.toString(), Object.class, this, pageContext); 
 }
 
 ExpressionEvaluatorManager.evaluate有四个参数。
 第一个表示tag的名字,在取el表达式出错时使用。一般和属性名字相同。
 第二个要求字符串,通常简单调用输入对象的toString方法。
 第三个是类,通常用Object.class。
 第四个用this即可,
 第五个是pageContext变量。

 在tld文件中该标签属性的rtexprvalue得设置为true,表示是否支持运行时表达式取值。

 

 OK啦!可以用啦!

 

如何在Java自定义标签中让自定义的标签属性正确接收EL表达式对象

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
今天来讲javaweb的第六阶段学习。 EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说
首先说明这是一个HelloWorld程序。 解决的问题有:1.工程中无法使用EL表达式处理; 2.TLD应如何定义;
最近弄了一个分页插件,顺便学习了下自定义标签、自定义函数、taglib的使用。 自定义标签 使用自定
最近弄了一个分页插件,顺便学习了下自定义标签、自定义函数、taglib的使用。 自定义标签 使用自定
usertag.tld <?xml version="1.0" encoding="UTF-8"?> <taglib version="2.0" xmlns="http
usertag.tld <?xml version="1.0" encoding="UTF-8"?> <taglib version="2.0" xmlns="http
usertag.tld <?xml version="1.0" encoding="UTF-8"?> <taglib version="2.0" xmlns="http
绝大部分 Java 领域的 MVC 框架,例如 Struts、Spring MVC、JSF 等,主要由两部分组成:控制器组件
一、概述 JSP 2.0 中提供了两种新的开发自定义标记的方法: 1、简单标签机制SimpleTag JSP 2.0 中加
这个是Easyui的treegrid的代码:(只是完成一个checkbox选择的监听的事件,来实现父子节点的选择) 这里
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号