代码之家  ›  专栏  ›  技术社区  ›  Fil

自定义标记不计算表达式;c和fmt标记正在计算表达式

  •  1
  • Fil  · 技术社区  · 15 年前

    我有一个 JSP 以开头的页面

    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    <%@ taglib uri="/WEB-INF/mytags.tld" prefix="mytags" %>
    

    标题为 我的标签.tld 具有以下内容:

    <taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    

    核心标签支持表达式,因此当我执行如下操作时:

    <c:out value="${myPageBean.firstName}"/>
    

    表达式按预期进行计算。

    但是,当我尝试让自定义标记计算表达式时,.jsp拒绝编译。

    <mytags:sayHello firstName="${myPageBean.firstName}"/>
    

    如果表达式在页面上的任何地方都不起作用,我可以更容易地对其进行排序,但是核心标记的行为是否如预期的那样,而我的自定义标记则不是这样?我在和Tomcat4.1合作

    1 回复  |  直到 15 年前
        1
  •  1
  •   axtavt    15 年前

    因为您使用的是Tomcat4.1,所以您使用的是JSP 1.2。EL支持在2.0版的JSP规范中引入,所以您没有它。因此,JSTL1.0使用自己的表达式语言实现,通过 ExpressionUtil .