`

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

阅读更多

下午弄了好久终于自己定义了一个标签库,但是发现却不能够用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

 

 

0
1
分享到:
评论

相关推荐

    jsp之c标签用法实例分析.docx

    - 在JSP 2.4版本中,使用JSTL可能遇到与EL(Expression Language)的兼容性问题,导致错误提示“According to TLD or attribute directive in tag file, attribute value does not accept any expressions”。...

    tld,TreeTag组件

    TLD(Tag Library Descriptor)是这个组件的核心,它定义了自定义标签库及其行为。在这个名为“tld.zip”的压缩包中,包含了多个TLD文件以及一些相关的JavaScript资源,用于实现丰富的用户界面功能。 首先,我们来...

    Java自定义标签开发Tag和tld开发

    Java自定义标签开发Tag和tld开发,非常详细的哟

    pager-tagl.tld

    《pager-tagl.tld:一个页面分页标签库的详细解析与应用》 在Web开发领域,尤其是在使用Java Server Pages (JSP) 技术时,我们常常会遇到需要处理大量数据并进行分页显示的情况。`pager-tagl.tld`文件就是这样一个...

    tld自定义标签基础入门demo

    在Java Web开发中,TLD(Tag Library Descriptor)文件是用于定义自定义JSP标签库的关键组件。TLD文件提供了一种方式,让开发者能够创建自己的标签,这些标签可以简化代码,提高可读性和可维护性。这个"tld自定义...

    struts的tld属性解释

    ### Struts的TLD属性详解 #### 一、引言 Struts框架是Apache软件基金会下的Jakarta项目中的一个开源框架,它是一个基于MVC设计模式的Java Web应用框架,被广泛应用于构建企业级Web应用程序。TLD(Tag Library ...

    tld自定义标签demo

    在Java Web开发中,TLD(Tag Library Descriptor)文件是一种用于定义自定义JSP标签的XML文件。TLD文件描述了标签库中的每个自定义标签的功能、属性、返回类型等元数据,使得开发者可以创建自己的标签库来扩展JSP...

    jstl1.1 tld文件

    **JSTL 1.1 TLD 文件详解** 在Java Web开发中,JSTL(JavaServer Pages Standard Tag Library)是一种标准标签库,用于增强JSP页面的功能,使其更加简洁和可维护。JSTL 1.1是该库的一个版本,提供了多种处理常见Web...

    JSTL标签所需要的tld文件(c.tld、fmt.tld、fn.tld)

    JSTL标签所需要的tld文件,包括 c.tld、fmt.tld、fn.tld 三个 几乎所有的JSTL标签下载的zip中都只有一个c.tld,然后只讲解标签怎么用,其实<fmt:> 标签也非常好用和实用,找了好久才找到fmt.tld这个,现在无私的贡献...

    tld文件(包含15个tld文件)

    c-1_0.tld, c-1_0-rt.tld, c.tld, fmt-1_0.tld, fmt-1_0-rt.tld, fmt.tld, fn.tld, permittedTaglibs.tld, scriptfree.tld, sql-1_0.tld, sql-1_0-rt.tld, sql.tld, x-1_0.tld, x-1_0-rt.tld, x.tld

    c.tld、fmt.tld、fn.tld等包

    而TLD(Tag Library Descriptor)文件是JSP标签库的元数据定义文件,用于描述自定义标签的行为和属性。在JSTL(JavaServer Pages Standard Tag Library)中,TLD文件起到了关键的作用。 标题中提到的"**c.tld、fmt....

Global site tag (gtag.js) - Google Analytics