根据标签的变量评估其主体的自定义标签

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也解释了这个问题的背景。

您的自定义标签可以在评估正文之前抓取并删除所有页面属性,然后清除并恢复。