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

编程技术  /  houtizong 发布于 3年前   81

如何在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啦!可以用啦!

 

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客