JSTL使用入门(续1)

使用JSTL JSTL是一个标准的集合,它可让您在JSP页面中使用标记而不是Java Scriptlet代码执行重复任务。JSTL是一系列供许多JSP应用程序共同的方法和标记。您可使用JSTL尽量减少JSP应用程序中的Java代码。JSP提供了一套标记,您可在多个JSP容器上使用它们。 阅读详情

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."

JavaWeb核心技术系列教程(28)——JSTL入门 之前,我们介绍了JSP常用便签以及JSP自定义标签。其实,早在从JSP 1.1规范开始JSP就支持使用自定义标签了,使用自定义标签极大地降低了JSP页面的复杂度,同时增强了代码的重用性;所以,自定义标签在WEB应用中被广泛使用。故,许多WEB应用厂商都开发出了自己的一套标签库,这导致出现了许多功能相同的标签,令开发人员无从选择,无所适从,手忙脚乱。为了解决该问题,Sun公司研发了一套JSP标准标签库(Java Server Pages Standard Tag Library),简称JSTL。 阅读详情

相关推荐

深入理解JSTL1.1与JSTL1.0版本差异及应用

JSTL(JavaServer Pages Standard Tag Library)是Java EE平台上的一个标准标签库,它为JSP页面提供了一系列的自定义标签来替代传统的JSP脚本元素。这些自定义标签主要用于简化页面内容的开发,提供与XML的无缝整合,并优化了JSP页面的性能。本章将简要介绍JSTL的功能,通过标签库的定义,我们会探索它如何使得JavaServer Pages技术变得更加易于使用和维护。我们将从基本的标签如<c:out>用于输出内容开始,到复杂的如用于日期格式化。

weixin_28721743的博客 1115

jstl里面给EL表达式赋值

&lt;c:set var="count" value="${0}"/&gt; //声明变量count,并赋初始值0   &lt;c:forEach items="${requestScope.list }" var="order" varStatus="varStatus"&gt;    &lt;tr align="center"&gt

jhhuang4836的专栏 2142

ComfyUI节点流实战:用Wan2.1制作电商短视频全流程(附人物/商品模板)

本文提供了一份详尽的ComfyUI实战教程,指导用户如何利用通义万相Wan2.1图生视频模型,高效制作适用于抖音等平台的电商短视频。内容涵盖从环境部署、核心工作流搭建,到针对服装、3C数码等品类的高级提示词模板与参数调优,旨在帮助电商从业者快速生成高质量、高保真商品展示视频,显著提升内容生产效率。

potato的博客 1279

JSTL 库安装使用(jstl 1.1系列和jstl 1.2系列)

JSTL全名为JavaServer Pages Standard Tag Library,目前最新的版本为 1.2.5 版。JSTL是由JCP(Java Community Process)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签函数库。Web程序员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序的阅读性、维护性和方便性。

qq_27637361的博客 9681

Palantir的本体论建模跟数仓建模的异同

Palantir的Foundry Ontology通过构建组织的数字孪生体,将数据集和模型映射为对象类型、属性、链接和操作类型,形成完整的语义知识网络。与传统数仓建模相比,本体建模以业务问题为驱动,强调细粒度语义和实时决策能力,采用图语义技术实现灵活的映射关系。

轩哥的个人研究和成长记录 1588

MOOS-ivp实战:从零搭建水下机器人通信系统(Ubuntu 22.04版)

本文详细介绍了在Ubuntu 22.04系统上从零开始搭建MOOS-ivp水下机器人通信系统的完整实战流程。内容涵盖环境准备、核心安装、MOOSDB通信模型解析、自定义应用节点开发、以及调试监控工具链的使用,旨在帮助开发者快速掌握这一分布式机器人系统框架,构建稳定可靠的水下机器人通信与控制系统。

snow3的博客 633

JSTL详解

一JSTL概述        (1)什么是JSTL        JSTL是Java中的一个定制标记库集。JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功 能。JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它 还提供了一个框架来使用集成JSTL的自定义标签。        (2

错觉 3万+

程序进入hardfault之后查找原因的方法

如果在MCU运行程序的时候,进入了hardfault,该怎么办?

smart_boy__的博客 761

IDEA配置JSTL与简单使用

快速1.IDEA配置JSTL1.1 首先下载JSTL1.2 导入jar包2. JSTL简单实用2.1 taglib2.2 1.IDEA配置JSTL 1.1 首先下载JSTL 下载地址 以1.1.2版本为例,解压将lib下的两个jar包放在工程WEB-INF下的lib中: From: To: 注意:刚复制过来的jar包是不能打开的,也就是红框中两个jar左边没有折叠图标。 1.2 导入jar包...

dongzhensong的博客 9895

Amesim基础篇-元件详解-流体库管路

Amesim基础篇-元件详解-流体库管路

2201_75375391的博客 4519

17、Nimble 包开发与并行编程指南

本文介绍了Nimble包的开发与版本管理流程,涵盖语义化版本控制规范及发布步骤;深入探讨了Nim中的并行编程基础,包括并发与并行的区别、threads模块与threadpool模块的使用方法及其差异;分析了线程执行的不确定性、线程池的优势,并提供了线程同步和资源管理的实践示例,帮助开发者高效构建稳定、高性能的Nim应用程序。

wine的专栏 55

使用jstl1.1,注意与1.0的区别

近日做一个小系统,使用了Struts,还用到了JSTL。这套配置在以前开发项目的时候就用过的,不过当时没有深入了解。所以,导致本次使用时,遇到了一个小问题,浪费了一点时间。所以,做了一个小小的调查,搞清楚了JSTL1.0和JSTL1.1的区别及使用方法。 现象在标签中使用了EL,结果运行时报错。说根据tld文件的说明,该标签不支持表达式(EL)。原文为:Accord

superbeck的专栏 4710

YOLOv11在视频流中的时序建模改进-(加入ConvLSTM或Transformer捕捉帧间关联)

本文提出了一种结合ConvLSTM和Transformer的改进YOLOv11算法,用于增强视频目标检测的时序建模能力。针对视频检测中运动模糊、遮挡等挑战,研究分析了ConvLSTM的局部时空特征建模和Transformer的全局注意力机制之间的互补性。通过数学公式详细阐述了ConvLSTM的门控机制和Transformer的自注意力计算原理,并提出分层融合策略:底层使用ConvLSTM处理高分辨率特征捕捉局部运动,高层应用Transformer建立全局时空关联。改进方案在YOLOv11架构中插入时序增强模

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 680

Jsp技术入门指南【九】详细讲解JSTL

在之前的博客中,我们已经深入剖析了JSP页面的核心结构,从基础语法到动态交互的实现,逐步揭示了动态网页开发的底层逻辑。通过这些内容的学习,相信我们已经对JSP的开发有了更清晰的认识,并且掌握了高效开发动态Web应用的关键技能。接下来,我们将继续深入JSP的世界,探索JSTL的强大功能。JSTL(JavaServer Pages Standard Tag Library)是JSP开发中不可或缺的重要工具,它提供了一组标准化的标签,用于简化JSP页面的开发过程。

2402_83322742的博客 1243

Linux加密框架中的算法和算法模式(1)——算法介绍

算法和算法模式

yangguoyu8023的博客 2031

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

(JSTL)jstl.jar和standard.jar的下载地址与使用

jstl.jar下载地址: http://repo2.maven.org/maven2/javax/servlet/jstl/standard.jar下载地址: http://repo2.maven.org/maven2/taglibs/standard/JSTL 1.0 的声明是:    &lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl...

笑彪夕的博客 6万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

下载JSTL以及使用

1.搜索 http://www.mvnrepository.com 2.输入JSTL查找 找到这项 JSTL1,530 usages javax.servlet » jstl Last Release on Jun 23, 2011 3.下载最新版本1.2.x 找到jar (404KB)下载 4.第四步:把jstl-1.2.jar 拷贝到项目的lib目录下 【ROOT\WEB-INF\lib】 5...

Z_houZhou的博客 1406

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JSTL是什么?如何将 JSTL 与 Spring MVC 一起使用

JSTL是什么?如何将 JSTL 与 Spring MVC 一起使用

weixin_45428910的博客 932

JSTL版本分析

一、前言   JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。然而jakarta有很多子项目如Tomcat、Lucene升级为Apache子项目,当前Jakarta无剩余的子项目,Jakarta项目于2011年12月21日退役。   我需要利用Maven构建项目,此时需要使用到...

fanxiaobin 6307

手把手教你在Eclipse+Tomcat环境下使用JSTL

伴随着JAVA EE5的出现,JSP技术已经升级为2.1版本,其中一个比较重要的特性就是JSTL1.2,允许你在JSP页面中使用标签来简化开发。本文简单介绍一下在Tomcat+Eclipse环境下如何使用JSTL技术。首先需要明确的一个概念是:JSP2.1虽然是JAVA EE5的一部分,但他只是一个规范,具体的实现还要靠各个厂商来完成。比如我们的Tomcat5.5,他就没有实现JSP2.1规范

华丽的痘痘 1万+

JSTL使用心得

 jstlJSTL使用心得 第一次使用JSTL时,感觉它是那样的别扭,一点都不如JSP使用起来方便,但是在我真真的掌握它以后我才感觉到它功能的强大和巨大的优越性,下面是我在使用JSTL的过程中的一点感想,希望对学习它的人有所帮助。JSTL核心标签库支持输出、变量管理、条件循环语句、text imports 和URL manipulation。在JSP页面中可以引入下面的标签来使

wind513的专栏 9765

JSTL使用入门

一、JSTL 简介JSP标准标记库(JSP Standard Tag Library,JSTL)是一个实现Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML操作以及数据库访问。JSTL 1.0 有四个定制标记库:core、format、xml 和 sql.1.core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操

共享 交流 9219

JSTL 1.1 简介

JavaServer Pages Standard Tag Library (1.1 ),它的中文名称为JSP 标准标签函数库。JSTL 是 一个标准的已制定好的标签库,可以应用于各种领域,如:基本输入输出、流程控制、循环、 XML 文件剖析、数据库查询及国际化和文字格式标准化的应用等。从表7-1 可以知道,JSTL 所提供的标签函数库主要分为五大类:       (1)核心标签库 (Core t

我行我能 1390

Resin/Tomcat下使用jstl

Resin下使用jstl 在Resin2.x下使用jstl Resin从2.1.2版本开始自己实现了JSTL的core和fmt两个TAGLIB。 使用Resin2.x自带的JSTL不需要拷贝JAR和TLD文件,也不需要配置web.xml。 只要在页面引用就可以了,注意与标准JSTL1.1的区别。Java代码 "http://java.sun.com/jstl/core" p

snakeqi的专栏 1237

JSTL1.0和JSTL1.1的区别[转]

 这要从一个异常说起According to TLD or attribute directive in tag file, attribute value does not accept any expressions产生异常的代码是如果使用jstl1.0会产生异常,因为1.0不支持attribute的EL赋值,使用1.1就正常 我们需要在两个地方注意1.0和

周游世界 719
上一篇: Java Application
下一篇: XML Application
hitgnu
博客等级 码龄23年 1粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值