我有一个 .jsp 页面,开头为
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="/WEB-INF/mytags.tld" prefix="mytags" %>
mytags.tld 的 header 包含以下内容:
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
核心标签支持表达式,因此当我执行如下操作时:
<c:out value="${myPageBean.firstName}"/>
表达式按预期计算。
但是,当我尝试让自定义标记计算表达式时,.jsp 拒绝编译。
<mytags:sayHello firstName="${myPageBean.firstName}"/>
如果表达式在页面上的任何地方都不起作用,我可以更轻松地解决这个问题,但是核心标签的行为符合预期,而我的自定义标签却没有,这是否有意义?我正在使用 Tomcat 4.1
最佳答案
由于您使用的是 Tomcat 4.1,因此您拥有 JSP 1.2。 EL 支持是在 2.0 版本中引入到 JSP 规范中的,因此您没有它。因此,JSTL 1.0 使用自己的表达式语言实现,可通过 ExpressionUtil
访问。 .
关于java - 自定义标签不计算表达式; c 和 fmt 标签正在评估表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3789034/