1

当我从 调用它时main.jsptest按预期打印出来:

<%@ 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}"/>

但是,如果我删除最后一行并尝试打印testfrom的值main.jsp,它就不起作用:

<c:out value="${test}"/>

为什么我不能test从封闭页面访问变量,但可以从 JSP 标记文件内部访问?

4

1 回答 1

2

因为 JSP 的 jsp 上下文不同于标记之一。您可以将其视为调用另一个方法的方法。如果第二种方法声明了一个局部变量,第一种方法将看不到它。不在其范围内。

有关如何在 JSP 标记文件中使用变量的信息,请参阅http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html#wp89909 。

于 2011-12-25T19:49:13.790 回答