根据标签的变量评估其主体的自定义标签
Custom tag that evaluates its body based on the variables of the tag
好的,现在我猜这是给硬核 JSTL 向导的东西 ;-)
我想要一个标签,其主体不替换周围页面的变量。它应该只考虑在标签正文或标签本身中指定的变量,如下所示:
<c:set var="outsideVar" value="outside value"/>
<a:component>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<div data-component-id="9">
<c:set var="componentId" value="9"/>
<c:set var="path" value='${abc:getCurrentPath()}_${componentId}'/>
<c:set var="resource" value='${abc:getResourceFromPath(path)}'/>
<c:set var="val" value="${resource.getValue('paragraphValue')"/>
<p>${fn:escapeXml(val)}</p>
${outsideVar}
</div>
</a:component>
不应设置 outsideVar
变量,标签主体的行为应类似于 <jsp:include/>
的内容
这是一个更具体的问题:
link也解释了这个问题的背景。
您的自定义标签可以在评估正文之前抓取并删除所有页面属性,然后清除并恢复。
好的,现在我猜这是给硬核 JSTL 向导的东西 ;-)
我想要一个标签,其主体不替换周围页面的变量。它应该只考虑在标签正文或标签本身中指定的变量,如下所示:
<c:set var="outsideVar" value="outside value"/>
<a:component>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<div data-component-id="9">
<c:set var="componentId" value="9"/>
<c:set var="path" value='${abc:getCurrentPath()}_${componentId}'/>
<c:set var="resource" value='${abc:getResourceFromPath(path)}'/>
<c:set var="val" value="${resource.getValue('paragraphValue')"/>
<p>${fn:escapeXml(val)}</p>
${outsideVar}
</div>
</a:component>
不应设置 outsideVar
变量,标签主体的行为应类似于 <jsp:include/>
这是一个更具体的问题:
您的自定义标签可以在评估正文之前抓取并删除所有页面属性,然后清除并恢复。