Java 为什么我可以从JSP标记文件内部输出属性,而不能从调用标记文件的JSP页面输出属性?
当我从Java 为什么我可以从JSP标记文件内部输出属性,而不能从调用标记文件的JSP页面输出属性?,java,jsp,jsp-tags,tagfile,Java,Jsp,Jsp Tags,Tagfile,当我从main.jsp调用它时,test按预期打印出来: <%@ tag language="java" pageEncoding="utf-8" isELIgnored="false" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <
main.jsp
调用它时,test
按预期打印出来:
<%@ tag language="java" pageEncoding="utf-8" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%
jspContext.setAttribute("test", "test");
%>
<c:out value="${test}"/>
为什么我不能从封闭页面访问
test
变量,但可以从JSP标记文件内部访问它?因为JSP的JSP上下文与标记的JSP上下文不同。您可以将其视为调用另一个方法的方法。如果第二个方法声明了一个局部变量,第一个方法将看不到它。这不在它的范围之内
有关如何使用JSP标记文件中的变量,请参阅。谢谢-我误解了标记文件的工作方式-我以为您可以设置一个调用页面可以看到的变量。
<c:out value="${test}"/>