java - 为什么我可以从 JSP 标记文件内部输出属性,但不能从调用该标记文件的 JSP 页面输出属性?

标签 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" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<%
 jspContext.setAttribute("test", "test"); 
%>
<c:out value="${test}"/>

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

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

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

最佳答案

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

参见http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html#wp89909了解如何在 JSP 标记文件中使用 out 变量。

关于java - 为什么我可以从 JSP 标记文件内部输出属性,但不能从调用该标记文件的 JSP 页面输出属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8631222/

相关文章:

java - 自定义 taglib - 根据每个请求重新编译 .tag 文件。这是正常的吗?

java - 如何在 Spring 3 MVC REST API 中继承 RequestMappings

java - 如何在java中正确清除Map

javascript - 对于大请求第二次触发 Json 请求

java - 如何在 Struts 2 标签中使用 getParameter() ?

java - Eclipse 在工作文件夹中找不到通过 jsp 生成的 java 文件

java - 在 JSP 中访问操作 getter

java - 将 double 加载到 arrayList 中

java - 如何在 OpenCV 中显示 Mat 变量中存在的所有值?

javascript - 使用 Struts2 标签分配隐藏值