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

According to TLD or attribute directive in tag file, attribute value does not ac

发表于: 2012-09-24   作者:商人shang   来源:转载   浏览:
摘要: 下午弄了好久终于自己定义了一个标签库,但是发现却不能够用el表达式给属性赋值,后来在网上找到了,现在写下来记录,并且跟大家分享     我们在项目开发中为了更方便灵活的使用Java自定义标签,往往需要让自定义的标签属性接收一些EL表达式对象,所幸的是apache为我们提供了简单的实现方式。 需要的jar包: jstl.jar standard.jar  &

下午弄了好久终于自己定义了一个标签库,但是发现却不能够用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,表示是否支持运行时表达式取值

 

摘自:http://blog.sina.com.cn/s/blog_886b680b0100vy6v.html

 

 

According to TLD or attribute directive in tag file, attribute value does not ac

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
3天硬是是把这个问题解决了 有时候突然上个厕所灵感就来了 第一次向用JSTL解析xml 然后我想遍历整个
Server Error in '/InsusSiteCS' Application. The type 'Catalog', provided as the Service attri
关于GooglePlay上传错误:android:icon attribute attribute is not a string value 今天上传应用到
Error: Attribute value must be constant 本文地址:http://blog.csdn.net/caroline_wendy Attribu
异常日志: Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #3: <item
此问题是由于tomcat5.5.28及以上版本升级引起。 1. 可以修改代码如下: <jsp:include page="fastp
此问题是由于tomcat5.5.28及以上版本升级引起。 1. 可以修改代码如下: <jsp:include page="fast
采用amCharts做的图形界面今天突然发现图形显示有问题,图形横坐标没法显示,并且鼠标移动到图形上
YUI的Attribute功能允许你通过一个可扩展的Attribute接口为类添加属性。该接口为你的类添加get和set
@slideshare 原生: attribute 的访问控制从ecmascript3.1开始引入,在ecma5正式成为标准,目前有ie
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号