`

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”。...

    使用propertities配置文件的简单的自定义标签入门例子

    1. 引入TLD文件:在JSP页面的`<jsp:directive.page>`或`<jsp:root>`标签中引入TLD文件,以便识别自定义标签。 2. 使用自定义标签:在页面中像使用普通HTML标签一样使用自定义标签,并传递配置文件路径作为属性。 ```...

    JSP指令元素-tablib

    **JSP指令元素-TLD与Taglib** 在JavaServer Pages (JSP) 技术中,`<jsp:directive.taglib>` 是一个指令元素,用于引入一个标签库,也就是我们通常所说的Taglib。Taglib是JSP的一个强大特性,它允许开发者创建自定义...

    JSP自定义标签源码

    - **TLD内容**:TLD文件中的元素包括`<tag>`元素,用于定义每个自定义标签,以及`<attribute>`元素,用于定义标签的属性。 ### 4. 使用自定义标签 - **导入标签库**:在JSP页面中,通过`<jsp:directive.taglib>`...

    JSP简单标签

    在Java服务器页面(JSP)技术中,简单标签(Simple Tags)是自定义标签的一种形式,它们为开发者提供了更简洁、可读性更强的代码,相比传统的JSP脚本元素和自定义标签库(Tag Library Directive,TLD),简单标签在...

    JSP/Servlet

    您可以將一些網頁格式處理或是限定存取之類的需求,使用標籤庫來處理,程式邏輯撰寫在標籤處理類別(Tag Handler Class)中,並定義好標籤庫定義檔案(.tld),而在JSP網頁中使用自訂標籤來撰寫網頁。 簡介 Tag ...

    JSP标签,自定义标签

    2. 标签库描述文件(TLD,Tag Library Descriptor):这是一个XML文件,用于定义标签、属性、标签库的元数据等。 3. 标签库引用(Taglib Directive):在JSP页面中,通过`<%@ taglib %>`指令引入自定义标签库。 **...

    JSP2.0技术手册(带示例源码)

    5. **自定义指令的增强**:新增了`<jsp:directive.page>`、`<jsp:directive.include>`和`<jsp:directive.attribute>`等指令,使得对页面、包含文件以及自定义标签属性的控制更加强大。 6. **错误处理与异常处理**:...

Global site tag (gtag.js) - Google Analytics