根据JSP 2.0规范的 JSP.7.1.6 (粗体显示),
在转换阶段,将页面的各个部分转换为javax.servlet.jsp.tagext.JspFragment
抽象类的实现,然后再传递给标签处理程序。 在TLD中声明为片段或类型的 命名属性 (由定义的 属性) 中的 此操作都是自动完成的。<jsp:attribute>``JspFragment
也就是说,在testtag.jsp
片段中应该以其他方式传递:
<%@page contentType ="text/html" pageEncoding="UTF-8" buffer="none" session="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
<c:set var="myvar" value="hello world"/>
<t:testtag>
<jsp:attribute name="att1"><c:out value='${myvar}'/></jsp:attribute>
</t:testtag>