`
hitgnu
  • 浏览: 95063 次
  • 性别: Icon_minigender_1
  • 来自: 苏州-->上海
社区版块
存档分类
最新评论

JSTL使用入门(续1)

阅读更多

file name:ImplicitObjectScope.jsp

<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<jsp:useBean id="simpleBean" scope="request" class="jsptag.SimpleBean">
</jsp:useBean>
<html>
<head>
<title>
ImplicitObjectScope
</title>
</head>
<body bgcolor="#ffffff">
<h3>
ImplicitObjectScope.jsp
</h3>
<p><strong>
 首先设定作用域分别为application/session/request/page的四个变量
</strong></p>
<c:set var="applicationVar" value="applicationVarValue" scope="application"/>
<c:set var="sessionVar" value="sessionVarValue" scope="session"/>
<c:set var="requestVar" value="requestVarValue" scope="request"/>
<c:set var="pageVar" value="pageVarValue" scope="page"/>
<%//同上等效
/*
session.setAttribute("sessionVar","sessionVarValue");
application.setAttribute("applicationVar","applicationVarValue");
request.setAttribute("requestVar","requestVarValue");
pageContext.setAttribute("pageVar","pageVarValue");
*/%>
session variable value:
<c:out value="${sessionScope.sessionVar}" default=" there is not session  variable"/>
<br />
application variable value:
<c:out value="${applicationScope.applicationVar}" >
  there is not application variable"
</c:out>
<br />
request variable value:
<c:out value="${requestScope.requestVar}">
  there is not request variable
</c:out>
<br />
page variable value:
<c:out value="${pageScope.pageVar}">
  there is not page variable
</c:out>
<p>
<form action="ImplicitObjectScope.jsp" method="post">
  <input type="hidden" name="requestName" value="this is the value of requestName"/>
  <input type="hidden" name="isForward" value="Y"/>
  <input type="submit" value="点击此处提交到本页,并将请求转发到ImplicitObjectScope1页面"/>
</form>
<form action="ImplicitObjectScope.jsp" method="post">
  <input type="hidden" name="requestName" value="this is the value of requestName"/>
  <input type="hidden" name="isForward" value="Y"/>
  <input type="hidden" name="isForwarAgain" value="Y"/>
  <input type="submit" value="点击此处提交到本页,并将请求转发到ImplicitObjectScope1页面,并再次将请求转发到destOfForward页面"/>
</form>
<form action="ImplicitObjectScope1.jsp" method="post">
  <input type="hidden" name="requestName" value="this is the value of requestName"/>
  <input type="submit" value="点击此处,直接提交到ImplicitObjectScope1页面"/>
</form>
<form action="ImplicitObjectScope1.jsp" method="post">
  <input type="hidden" name="requestName" value="this is the value of requestName"/>
  <input type="hidden" name="isForwarAgain" value="Y"/>
  <input type="submit" value="点击此处,直接提交到ImplicitObjectScope1页面,再将请求转发到destOfForward页面"/>
</form>
</p>
<c:if test="${not empty param.isForward}">
 <jsp:forward page="ImplicitObjectScope1.jsp" />
</c:if>
<p>
  以下为使用forEach 标记实现累加的范例(EL结合JavaBean的使用)。
</p>
<c:set value="0" var="count">
</c:set>
<table border="1">
 <tr>
  <td>index</td><td>number</td><td>sum</td>
 </tr>
<c:forEach items="${simpleBean.numberList}" var="number" varStatus="status">
 <tr>
  <td><c:out value="${status.index}"/></td>
  <td>
  <c:out value="${number}"/>
  <c:set var="count2" value="${count}"/>
  <c:set var="count" value="${count2+number}"/>
  </td>
  <td>count:<c:out value="${count}"/></td>
 </tr>
</c:forEach>
</body>
</html>



file name:ImplicitObjectScope1.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<jsp:useBean id="simpleBean" scope="request" class="jsptag.SimpleBean">
</jsp:useBean>
<jsp:setProperty name="simpleBean" property="*" />
<c:if test="${not empty param.isForwarAgain}">
 <jsp:forward page="destOfForward.jsp"/>
</c:if>
<html>
<head>
<title>
ImplicitObjectScope1
</title>
</head>
<body bgcolor="#ffffff">
<h3>
ImplicitObjectScope1.jsp
</h3>
<p>
 注意比较不同作用域的变量,其值有无变化
</p>
<p>
session variable value:
<c:out value="${sessionScope.sessionVar}" default=" there is not session  variable"/>
<br />
application variable value:
<c:out value="${applicationScope.applicationVar}" >
  there is not application variable"
</c:out>
<br />
request variable value:
<c:out value="${requestScope.requestVar}">
  there is not request variable
</c:out>
<br />
page variable value:
<c:out value="${pageScope.pageVar}">
  there is not page variable
</c:out>
</p>
<p>
如下,为EL结合JavaBean的例子:
<br />
output value of reqeustName:
<c:out value="${simpleBean.requestName}">
  the simpleBean.requestName is not existed.
</c:out>
</p>
</table>
</body>
</html>


file name:destOfForward.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<jsp:useBean id="simpleBean" scope="page" class="jsptag.SimpleBean"/>
<%--试比较将scope改为request有何不同--%>
<%--jsp:useBean id="simpleBean" scope="page" class="jsptag.SimpleBean"/--%>
<html>
<head>
<title>
destOfForward
</title>
</head>
<body bgcolor="#ffffff">
<h3>
destOfForward.jsp
</h3>
<p>
注意比较此处输出的变化
<br />
request variable:
<strong>
<c:out value="${requestScope.requestVar}">
  there is not request variable
</c:out>
</strong>
</p>
<br />
output value of reqeustName:
<strong>
<c:out value="${simpleBean.requestName}">
  the simpleBean.requestName is not existed.
</c:out>
</strong>
<br />
<p>
注意:在这里,JavaBean(SimpleBean)的scope为page,与前页为request不同,所以输出为不存在的信息。
</p>
</body>
</html>
file name:SimpleBean.java
package jsptag;

/**
 * <p>Title: </p>
 * <p>Description: A Simple Java Bean</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author zqy
 * @version 1.0
 */
import java.util.ArrayList;
public class SimpleBean {

 private String requestName = null;
 private ArrayList numberList=new ArrayList();

 public SimpleBean() {
  for(int i=1;i<=10;i++)
   this.numberList.add(String.valueOf(i));
 }

 public void setRequestName(String requestName) {
  this.requestName = requestName;
 }

 public String getRequestName() {
  return this.requestName;
 }

 public void setNumberList(ArrayList numberList)
 {
  this.numberList=numberList;
 }

 public ArrayList getNumberList()
 {
  return this.numberList;
 }
}

补:
下面这段话关于如何区别page scope和request scope:
"Objects are created within a JSP page instance that is responding to a request object. There are several scopes:
 page - Objects with page scope are accessible only within the page where they are created. All references to such an object shall be released after the response is sent back to the client from the JSP page or the request is forwarded somewhere else. References to objects with page scope are stored in the pageContext object.
 request - Objects with request scope are accessible from pages processing the same request where they were created. References to the object shall be re-leased after the request is processed. In particular, if the request is forwarded to a resource in the same runtime, the object is still reachable. References to objects with request scope are stored in the request object."



分享到:
评论

相关推荐

    jstl入门标签手册

    在开始使用JSTL之前,首先需要确保你的开发环境支持JSTL。如果你使用的是MyEclipse,并且创建的是Java EE 5.0项目,那么通常已经内置了JSTL 1.2的支持,无需额外配置。如果是J2EE 1.4项目,则可能需要手动添加JSTL ...

    EL&JSTL从入门到精通.zip

    2. JSTL核心标签库的使用:学会如何利用`&lt;c:if&gt;`、`&lt;c:forEach&gt;`等标签编写控制流,以及如何通过`&lt;c:set&gt;`、`&lt;c:remove&gt;`等标签管理变量。 3. 国际化与本地化:利用fmt标签库进行日期、时间的格式化,并实现多语言...

    jstl入门示例源码

    在"jstl入门示例源码"中,你可以找到一系列展示JSTL基本功能的编译成功示例。这些示例将帮助初学者快速掌握JSTL的核心概念和用法。下面我们将深入探讨JSTL的关键组件和主要功能: 1. **Core标签库**:这是JSTL中最...

    JSTL入门教程

    **JSTL(JavaServer Pages Standard Tag Library)入门教程** JSTL是Java服务器页面标准标签库,它提供了一系列的标签来简化JSP开发,帮助开发者处理常见的任务,如迭代、条件判断、XML处理等,使得JSP代码更加简洁...

    JSTL标签入门帮助文档

    **JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它为JSP页面提供了一套强大的、可..."JSTL入门帮助文档"会详细讲解这些概念和用法,对初学者来说是一份非常有价值的参考资料。

    jstl 使用文档方便你快速入门 ,能够快速上手使用JSTL技术.pdf

    **JSTL(JSP Standard Tag Library)**是Java服务器页面(JSP)的一个扩展,旨在简化JSP页面的开发,通过提供一组预定义的标签,使得开发者可以在不使用脚本语言的情况下处理业务逻辑。JSTL的出现是为了替代JSP页面...

    JSTL从入门到精通最全资料打包(附详细实例)

    JSTL从入门到精通最全资料大搜集:包括jstl中文教程.pdf、JSTL基础PPT教程、JSTL中文帮助文档.chm、JSTL in Action.pdf、思远国际软件外包研发中心JSTL中文PPT。还有一个自己做的完整讲解的JSTL各个标签的实例。

    JSTL 入门:表达式语言

    在 developerWorks 上其新系列的第一篇文章中,软件工程师 Mark Kolb 向您展示了如何使用 JSTL 标记来避免在 JSP 页面中使用脚本编制元素。您还将了解如何通过从表示层删除源代码来简化软件维护。最后,您将了解 ...

    jstl使用xml出错

    本文将深入探讨“jstl使用xml出错”这一问题,以及如何解决相关问题。 首先,要正确使用JSTL处理XML,你需要确保在项目中包含三个关键的JAR文件: 1. **xalan.jar**:这个文件包含了XSLT处理器,用于将XML转换为...

    JSTL入门IBM文档

    IBM作为Java技术的重要贡献者,提供了丰富的学习资源,包括这份“JSTL入门IBM文档”。这份文档详细介绍了JSTL的基础知识,帮助开发者快速上手。 **1. 基本语法** JSTL的基本语法主要由标签组成,它们以`开头,例如`...

    JSTL 表达式 入门 访问SQL和XML内容

    在developerWorks 上其新系列的第一篇文章中,软件工程师 Mark Kolb 向您展示了如何使用 JSTL 标记来避免在 JSP 页面中使用脚本编制元素。您还将了解如何通过从表示层删除源代码来简化软件维护。最后,您将了解 JSTL...

    Struts中JSTL入门案例

    在这个"Struts中JSTL入门案例"中,我们将学习如何在Struts框架中集成并使用JSTL,以提升我们的开发效率和代码可读性。首先,我们需要了解JSTL的基础知识,它包括核心标签库(Core)、HTML标签库、XML标签库和函数库...

    JSTL使用手册 帮助文档

    1. **Core标签库**:这是JSTL中最基础的部分,提供了处理控制流程、迭代、输出等任务的标签,如`&lt;c:if&gt;`、`&lt;c:choose&gt;`、`&lt;c:forEach&gt;`、`&lt;c:set&gt;`等。例如,`&lt;c:if&gt;`用于条件判断,`&lt;c:forEach&gt;`用于循环遍历集合,...

    jstl30分钟入门

    **JSTL 30分钟入门** JavaServer Pages Standard Tag Library (JSTL) 是一套用于简化JavaWeb应用开发的标签库,它提供了一系列预定义的标签,使得开发者可以使用XML格式的标签来处理常见的任务,如迭代、条件判断、...

    JSTL官方使用手册

    **JSTL官方使用手册**,全称JavaServer Pages Standard Tag Library,是Java Web开发中的一个标准标签库,主要用于简化JSP页面的编程,提高代码的可读性和可维护性。JSTL提供了多种标签来处理常见的任务,如迭代、...

    jstl的使用有关JSTL的用法详解

    1. **Core库**:这是JSTL最基础的部分,包含处理流程控制、输出、URL重写等功能的标签。例如`&lt;c:forEach&gt;`用于迭代集合,`&lt;c:if&gt;`和`&lt;c:choose&gt;`进行条件判断,`&lt;c:set&gt;`设置变量,`&lt;c:remove&gt;`删除变量,以及`...

    JSTL入门标准教程

    **JSTL(JavaServer Pages Standard Tag Library)入门标准教程** **一、JSTL概述** JSTL是由Apache软件基金会开发的一个JavaServer Pages(JSP)标准标签库,它提供了一系列标签来简化JSP页面的开发,使代码更加...

    JSTL使用手册

    ### JSTL使用手册 #### 一、JSTL概览与重要性 JSTL(JSP Standard Tag Library)是一种用于简化JSP(JavaServer Pages)开发的技术,旨在通过一组标准化的标签来减少页面中Java代码的数量,提高可读性和可维护性。...

    jstl使用所需jar包

    **JSTL(JavaServer Pages Standard Tag Library...同时,`jstl.jsr standard.jar` 和 `jstl.jar` 是使用JSTL所必需的库文件,它们包含了JSTL的实现和标准标签库,而`APACHE_LICENSE.TXT` 则揭示了其开源许可证的细节。

Global site tag (gtag.js) - Google Analytics