`
j2eeli
  • 浏览: 45358 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jspContext.setAttribute(var, value, PageContext.PAGE_SCOPE) 在pageScope取不到值的原因

阅读更多

网络上搜到了一段文章,貌似就是这个原因:

Tag File转译后的Java类继承自SimpleTagSupport,需要注意的是,在这个类的setJspContext( JspContext pc )方法中,传入的参数JspContext被org.apache.jasper.runtime.JspContextWrapper进行了包装。被包装的JspContext 上的跟Nested Variable同名的属性也会被保存到JspContextWrapper上。JspContextWrapper的setAttribute()方法会拦截对PAGE_SCOPE属性的设置:这些属性并不保存在被包装的JspContext上,而是保存在JspContextWrapper上。在执行标签内容之前,JSP容器会把JspContextWrapper上Nested 和 AT_BEGIN Variables拷贝到被包装的JspContext 的PAGE_SCOPE中。在执行完标签体之后,JSP容器会复原之前保存在JspContextWrapper上的Nested Variable到被包装的JspContext 上,同时拷贝AT_END Variables到被包装的JspContext 上。

分享到:
评论
1 楼 mercyblitz 2010-03-23  
这是自问自答阿

相关推荐

    servlet 源码

    javax.servlet.jsp.JspContext.java javax.servlet.jsp.JspEngineInfo.java javax.servlet.jsp.JspException.java javax.servlet.jsp.JspFactory.java javax.servlet.jsp.JspPage.java javax.servlet.jsp....

    jsp实现对数据库的查询.txt

    jspContext.setAttribute("queryResult", new String(result)); jspContext.setAttribute("biao", tableName); %> ``` - **加载驱动**:使用`Class.forName()`加载ODBC桥接驱动。这里需要注意的是,现代Oracle ...

    JSP实验报告3.4.5(1).doc

    最后,这些变量的值通过`jspContext.setAttribute()`方法传递回JSP页面,并在页面上显示。 这个实验不仅展示了JSP中自定义标签的强大功能,还涉及了参数传递、数据验证、条件判断以及计算逻辑等多方面的知识。通过...

    jsp j技术

    Tag文件通过`jspContext.setAttribute()`方法将对象存储并返回给JSP页面,确保JSP页面可以使用这些对象。注意,JSP页面不能定义与Tag文件返回的对象同名的变量,以免造成冲突。 `taglib`指令用于引入自定义的Tag库...

    JSP内置对象[收集].pdf

    如`pageContext`(提供对整个JSP页面上下文的访问)、`out`(用于输出内容到响应)、`application`(跨所有用户共享信息)、`config`(初始化参数)、`exception`(捕获页面执行期间的异常)、`page`(代表当前JSP...

    javax.servlet.jar与javax.servlet.jsp.jar

    但在其他不包含这些库的环境中,需要将它们加入到项目的类路径中,或者在Web应用的`WEB-INF/lib`目录下。 ### 结论 `javax.servlet.jar`和`javax.servlet.jsp.jar`是Java Web开发的基础,理解并熟练使用这两个库...

    自定义标签实现国际化

    Locale locale = (Locale) context.getAttribute("locale", PageContext.SESSION_SCOPE); ResourceBundle bundle = ResourceBundle.getBundle("messages", locale); String message = bundle.getString(key); ...

    servlet的jar包

    在Java Web应用中,servlet.jar或javax.servlet-api.jar是必不可少的库,它提供了Servlet、Filter和Listener等关键类和接口。 描述中的"里面共十个包"可能是指这个jar包中包含了多个Java包,这些包共同构成了...

    t1.zip_android_jsp-api.jar包

    `jsp-api.jar`提供了管理这些阶段的接口,如`javax.servlet.jsp.JspPage`和`javax.servlet.jsp.JspContext`。 在Android环境下使用`jsp-api.jar`可能需要一些额外的配置,因为Android本身并不直接支持JSP。通常,...

    javax.servlet的jar包

    1. `jsp`包:包含JSP相关的类和接口,如`JspPage`、`JspContext`(对应`PageContext`)、`JspWriter`等。 2. `jsp.tagext`包:提供了自定义标签库(Tag Library)的API,如`Tag`、`TagSupport`、`SimpleTagSupport`...

    JAVA_scwcd_認證部份筆記

    【JAVA_scwcd_認證部份筆記】主要聚焦在JavaServer Pages (JSP)的自定义标签(Custom Tags)技术上,分为两种类型:Classic Tag和Simple Tag。这两种标签都是为了增强JSP页面的功能和可重用性,但它们在实现方式和...

    使用java语言编写的数据库连接池,实现数据库与jsp文件的连接.zip

    在JSP中,可以通过内置对象`javax.servlet.jsp.JspContext`的`pageContext.getAttribute()`和`setAttribute()`方法来传递数据,或者使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)...

    jsp api 文档

    2. **javax.servlet.jsp.PageContext**:JspContext 的具体实现,提供了对整个请求范围内的所有作用域(page, request, session, application)的访问。 3. **javax.servlet.jsp.tagext.Tag** 和**javax.servlet....

    Jsp.rar_jsp

    JSP-API是Java Servlet API的一部分,提供了JSP相关的接口和类,如JspPage、JspContext、PageContext等,供开发者在编写JSP页面或自定义标签库时使用。这些API定义了如何在JSP页面中访问请求、响应、会话等对象,...

    JavaWeb项目开发jar包

    它包含了Javax.servlet.jsp.jstl.core等包,这些包提供了JSTL标签所需要的一些基础类和接口,比如`javax.servlet.jsp.JspContext`和`javax.servlet.jsp.PageContext`。在JavaWeb应用中,Servlet API是服务器端处理...

    jspapi--jsp基础知识--jspapi

    - `javax.servlet.jsp.PageContext`: JspContext的具体实现,提供了更强大的功能,如获取请求、会话、应用程序、页面、请求头等对象。 - `javax.servlet.jsp.JspWriter`: 负责将输出流写入响应对象,处理JSP页面的...

    jspapi

    - `include`指令:在编译时将其他文件包含到当前JSP页面中。 - `taglib`指令:引入自定义标签库。 ### 3. JSP脚本元素 - **脚本声明**:`! %>`用于声明变量或方法,这些声明在页面的整个生命周期内有效。 - **脚本...

    javax.servlet---jsp-api jar包

    - **JspContext**:相当于Servlet中的ServletContext,但在JSP中,它被称为PageContext,提供了访问页面范围内的变量、表达式语言(EL)和JSP动作的接口。 - **Page指令**和**声明**:JSP页面的元数据,如导入的包、...

    自定义JSP标签样例

    jspContext.getOut().print("Hello, " + name); return SKIP_BODY; } } ``` 3. 使用自定义标签:在JSP页面中引入TLD文件,并使用定义的标签。 ```jsp <%@ taglib prefix="my" uri="http://example....

    大家经常会用到的jar包servlet-api.jar&jsp-api.jar

    在Java Web开发中,`servlet-api.jar`和`jsp-api.jar`是非常关键的库文件,它们包含了Servlet和JSP(JavaServer Pages)的核心API,是每个Java Web开发者必备的基础工具。这两个jar包通常由Java EE(Enterprise ...

Global site tag (gtag.js) - Google Analytics