好的,现在这是我猜想的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/>
outsideVar
<jsp:include/>
这是一个更具体的问题:是否可以在JSP中创建本地页面范围? 该链接还说明了此问题的背景。
您的自定义标签可以在评估正文之前捕获和删除所有页面属性,然后清除并还原。