`
菜鸟2号
  • 浏览: 6880 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

JSTL(core)学习与速查

    博客分类:
  • J2EE
阅读更多

1.<c:forEach>

语法:

a、在Collection中迭代:

       <c:forEach [var=”varName”] items=”collection”  [varStatus=”varStatusName”]

       [begin=”begin”] [end=”end”] [step=”step”]>

       Body 内容

       </c:forEach>

b、迭代固定的次数:

       <c:forEach [var=”varName”] [varStatus=”varStatusName”]

       begin=”begin” end=”end” [step=”step”]>

       Body 内容

       </c:forEach>

 

下表是items支持的Collection对象类型

items 的值

所产生的 item 

java.util.Collection

调用 iterator() 所获得的元素

java.util.Map

java.util.Map.Entry 的实例

java.util.Iterator

迭代器元素

java.util.Enumeration

枚举元素

Object 实例数组

数组元素

基本类型值数组

经过包装的数组元素

用逗号定界的 String

子字符串

javax.servlet.jsp.jstl.sql.Result

SQL 查询所获得的行

 

下表是varStatus的属性

特性

Getter

描述

current

getCurrent()

当前这次迭代的(集合中的)项

index

getIndex()

当前这次迭代从 0 开始的迭代索引

count

getCount()

当前这次迭代从 1 开始的迭代计数

first

isFirst()

用来表明当前这轮迭代是否为第一次迭代的标志

last

isLast()

用来表明当前这轮迭代是否为最后一次迭代的标志

begin

getBegin()

begin 属性值

end

getEnd()

end 属性值

step

getStep()

step 属性值

 

说明:

a.在标签中,遍历打印元素一般有两种写法

<c:forEach var = “tuser”, items = “list”>

       ${tuser.name}  //直接用EL表达式即可

       <c:out value = “${tuser.name}”>  //使用<c:out>标签打印

</c:forEach>

这两种方法在原理上是一样的。

b.关于var的疑问

我们知道EL表达式只能取jsp 4个隐藏对象的值,那么如何去这里的”tuser”呢。查看JSTL1.2源码得到var 是把这个变量定义在pageScope中,并且作用域为在<c:forEach>标签中。

2.<c:if>

语法:

1、无body的情况
       <c:if test=”testCondition” var=”varName” [scope=“{page|request|session|application}”]/>

2、有body的情况

       <c:if test=”testCondition” var=”varName” [scope=“{page|request|session|application}”]>

              Body内容

</c:if>

3.<c:choose>

它是用于条件选择,和<c:when>,<c:otherwise>一起使用,它的条件选择是排斥性的,相当于jsp中的<%switch(i){case 0: … case 1:… default :}%>,也可以完成<%if{}…else if{}….else if{} else{} %>的功能

语法:

<c:choose>

                     Body内容(<c:when>,<c:otherwise>)

      </c:choose>

注意:它的body内容只能是由以下的元素组成:

(1)  空格;

(2) 0个或多个<c:when>子标签,<c:when>必须在<c:otherwise>子标签之前出现;

(3) 0个或多个<c: otherwise >子标签

 <c:when> 它是<c:choose>的一个分支

语法:

       <c:when test=”testCondition”>

              Body内容

</c:when>

注意:它有两个限制:

(1) 必须以<c:choose>作为它的父标签

(2) 必须在<c:otherwise>标签之前出现

       <c:otherwise>他代表了<c:choose>的最后选择相当于jsp<%switch(i){case 0: … case 1:… default :}%> 中的default语句。

语法:

       <c:otherwise>

              Conditional block

</c:otherwise>

它的使用有两个限制:

(1) 必须以<c:choose>作为它的父标签;

(2)  必须以<c:choose>的最后分支方式出现;

4.<c:out>

语法:

没有BODY的时候

<c:out value=”value” [escapeXml]=”{true|false}” [default=”defaultValue”]/>

BODY的时候

<c:out value=”value” [escapeXml]=”{true|false}” >

       这里是BODY,可以是任何合法的jsp或者是html代码。

</c:out>

注意:escapeXml的作用是是否将代码交给xml解析器解释,true为交给xml解析器解释,false为交给浏览器解释。

5.<c:set>

这个标签用于在某个范围(page,request,session,application)里面设置特定的值(默认为page),或者设置某个已经存在的javabean的属性。类似于<%request.setAttribute(“name”,value)%>

语法:

(1)使用value属性设置一个特定范围里面的属性:

<c:set value=”value” var=”varName” [scope= “{page|request|session|application}”]/ >

(2)使用value属性设置一个特定范围里面的属性,带有BODY

<c:set value=”value” var=”varName” [scope= “{page|request|session|application}”] >

       Body content

</c:set>

(3)设置某个特定对象的一个属性:

<c:set value=”value” target=”target” property=”propertyName”/ >

(4)设置某个特定对象的一个属性, 带有BODY

<c:set value=”value” target=”target” property=”propertyName” >

       Body content

</c:set>

6. <c:remove>

它的作用是删除某个变量或者属性。类似于<%session.removeAttribute(“name”)%>

语法:

<c:remove var=”varName” [scope= “{page|request|session|application}”]/ >

7. <c:catch>

它的作用是捕捉由嵌套在它里面的标签所抛出来的异常,类似于<%try{}catch{}%>语法:

<c:catch [var=”varName”]>nested actions</c:catch>

注意:

查看源码得这里的catch捕获的就是Throwable接口,并把这个捕获的异常的对象,存入varName,范围是pageScope

8. <c:import>

导入一个url的资源,相当于jsp 中的<jsp:include page=”path”>标签,同样也可以把参数传递到被导入的页面。

语法:

a、资源的内容使用string对象向外暴露

              <c:import url=”url” [context=”context”]

[var=”varName”] [scope=”{page|request|session|application}”]

[charEncoding=”charEncoding”]>

Optional body content for <c:param> subtags

</c:import>

b、资源的内容使用redirect对象向外暴露

              <c:import url=”url” [context=”context”]

varReader=”varReaderName”

[charEncoding=”charEncoding”]>

Body content where varReader is consumed by another action

</c:import>

9. <c:redirect>

把客户的请求发送到另一个资源,相当于jsp中的<% request.sendRedirect(“other.jsp”)%>或者servlet中的RequestDispatch.forward(“other.jsp”)的功能。

语法:

a、没有body的情况

              <c:redirect url=”value” [context=”context”]/>

b、有body,在body 中查询指定的参数

              <c:redirect url=”value” [context=”context”]>

                     <c:param> subtags

              </c:redirect>

10.<c:url>

用于构造URL,主要的用途是URL的重写。

语法:

a、没有body的情况

              <c:url value=”value” [context=”context”]

[var=”varName”] [scope=”{page|request|session|application}”]/>

b、有body ,并在body 中有重写的参数

              <c:url value=”value” [context=”context”]

[var=”varName”] [scope=”{page|request|session|application}”]>

      <c:param />

</c:url>

11. <c:param>

它是在<c:import><c:redirectt><c:url>中添加请求的参数。和一般的参数没什么区别。

语法:

a、参数的值使用value属性指定

              <c:param name=”name” value=”value”/>

b、参数的值在body 中指定

              <c:param name=”name”>

                     参数值

              </c:param>

 

分享到:
评论

相关推荐

    jstl学习大全,jstl源码,很全的jstl学习代码

    **JSTL(JavaServer Pages Standard Tag Library)学习大全** JSTL是JavaWeb开发中的一个强大工具,它提供了一套标准的标签库,用于简化HTML或XML页面上的JavaServer Pages(JSP)代码。本资源集合包含了丰富的JSTL...

    jstl源码jstl学习

    4. **更好的维护性**:JSTL与Servlet API解耦,使得升级和维护更加简单。 **JSTL的学习路径:** 1. **了解核心标签**:包括`&lt;c:if&gt;`, `&lt;c:choose&gt;`, `&lt;c:when&gt;`, `&lt;c:otherwise&gt;`, `&lt;c:forEach&gt;`, `&lt;c:forTokens&gt;`...

    jstl标签学习笔记

    **JSTL标签详解** JavaServer Pages Standard Tag Library (JSTL) 是一套标准的标签库,用于简化JSP页面的编程,使得开发者能够使用标签而不是脚本来处理常见任务。在JSTL中,`EL(Expression Language)`是用于...

    JSTL Core标签库资料

    从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Library)的诞生。

    JSTL学习

    #### 一、JSTL的起源与重要性 JSTL,即JavaServer Pages Standard Tag Library,是在2002年由Sun Microsystems制定的一系列标准标签库,旨在为JSP开发者提供一套标准化、可重用的标签集,从而简化JSP页面的开发过程...

    jstl练习实例,学习JSTL

    本篇将详细讲解JSTL的基本概念、核心组件以及通过"jstl练习实例"进行的学习要点。 一、JSTL简介 JSTL是由Apache软件基金会的Jakarta项目维护的一个开源库,它提供了多种预定义的标签,用于处理常见的JSP任务,如...

    JSTL-Core标签库.pdf

    ### JSTL-Core标签库详解 #### 一、JSTL概述 JSTL(JavaServer Pages Standard Tag Library,JavaServer页面标准标签库)是一种专为简化JavaServer Pages(JSP)开发而设计的标准标签库。它由Apache的Jakarta项目...

    jstl文档学习资料

    jstl文档学习jstl文档学习jstl文档学习

    完全用jstl实现的增删改查与登陆

    总之,"完全用JSTL实现的增删改查与登陆"项目是一个学习JSTL的好材料,通过它,开发者可以掌握如何使用JSTL标签进行Web开发,理解JSTL如何简化JSP页面的编写,以及如何与EL协同工作,提高代码的可读性和可维护性。

    javax/servlet/jsp/jstl/core/ConditionalTagSupport

    在Java Web开发中,`javax.servlet.jsp.jspl.core.ConditionalTagSupport`是JSTL(JavaServer Pages Standard Tag Library)库中的一个核心类,用于支持条件标签的实现。当你遇到`java.lang.NoClassDefFoundError: ...

    jstl总结资料自己的学习笔记

    JSTL主要包含五个核心组件:Core、XML、Format、I18N和Functions。 **1. Core组件** Core组件是JSTL最基础的部分,包含了处理页面流程控制、URL操作、条件判断等常用功能的标签。例如: - `&lt;c:if&gt;`和`&lt;c:choose&gt;`...

    jstl-1.2.rar_JSTL_jstl 1.2_jstl jar_jstl-1.1.2.jar _jstl.jar

    描述中提到,`jstl.jar` 是用于Java Web开发的标准标签库,这意味着它可以与其他Java Web技术,如Servlet、JSP、JSF等协同工作,使得开发更加高效。在实际应用中,通常会将`jstl.jar` 放入Web应用的`WEB-INF/lib` ...

    JSTL 标记学习教程

    ### JSTL 标记学习教程:深入了解与实践 #### JSTL——简化JSP页面开发的利器 JSTL(JavaServer Pages Standard Tag Library)是JSP标准标记库,为网页开发者提供了一系列预定义的标签,用于简化JSP页面的开发过程...

    java jstl学习详解过程

    ### Java JSTL 学习详解过程 #### JSTL简介 JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages 标准标签库)是一组由 Sun Microsystems 提供的标准标签库,它允许开发者在 JSP 页面中使用预定义的...

    JSTL和EL的学习

    &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; ``` 然后可以在页面中使用这些标签,如: ```jsp ${list}" var="item"&gt; ${item.name} ``` **EL的介绍**: EL全称为Expression Language,它是...

    jstl插件与底层源码

    **JSTL(JavaServer Pages Standard Tag Library)插件与底层源码解析** JSTL是Java Web开发中的一种标准标签库,它提供了一系列的标签用于处理常见的Java Servlet和JSP任务,如迭代、条件判断、XML处理等,极大地...

    jstl标准标签库jar包.zip

    &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%&gt; jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2。 jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2。 ...

    jstl深入学习知识

     核心标签库:http://java.sun.com/jsp/jstl/core 包含 Web 应用的常见工作,比如:循环、表达式赋值、基本输入输出等。  格式化标签库:http://java.sun.com/jsp/jstl/fmt 用来格式化显示数据的工作,比如:对...

    jstl1.2标签库jar包

    **正文** JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages 标准标签库)是Java Web开发中常用的一个库,它...通过合理使用JSTL标签,开发者可以将业务逻辑与表现层分离,使得Web应用结构更加清晰。

Global site tag (gtag.js) - Google Analytics