好吧,现在我想这就是硬核 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/>
的内容
这是一个更具体的问题: Is it possible to create a local page scope in a JSP? 该链接还解释了这个问题的背景。
最佳答案
您的自定义标记可以在评估正文之前抓取并删除所有页面属性,然后再清除并恢复。
关于java - 根据标签的变量评估其主体的自定义标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32404445/