注:本文中的例子主要来自http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm。 

==========================================================

Core Tags:
在使用JSTL中的core tags的时候,首先需要引入一下库:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 

1. c:out
     包含3个属性:value(required)、default、escapeXML(默认值为true)。
     向页面上输出表达式的值,有点类似<%= %>的作用,不过它可以使用“.”的方式输出一个对象中的值,例如:<c:out value="customer.address.street"/>
     当escapeXML的值为true时,还有xml特殊字符的表达式不会被求值,而是直接输出。
     Example:

<body>
  <c:out value="${'<tag> , &'}"/>
</body>

Result:

<tag> , &

2. c:set
     包含5个属性:value、target(如果指定了target,同时也必须指定property)、property、var、scope(默认值为Page)。
     target:需要修改属性值的对象。
     scope:决定该变量的生命周期(如session、request、page...)
     Example 1:

<body>
  <c:setvar="salary"scope="session"value="${2000*2}"/>
  <c:outvalue="${salary}"/>
</body>

Result:
4000
     Example 2:
 Java Code

package foo;
public class DemoBean{
private String MyField;
public void setMyField(String s){
this.MyField = s;
}
public String getMyField(){
return this.MyField;
}
}

JSP Code

 <body>
  <jsp:useBean id="address" class="java.util.HashMap" />
  <jsp:useBean id="demo" class="foo.DemoBean" />
  <c:set target="${demo}" property="myField" value="hello" />
  <c:set target="${address}" property="line1" value="10 Downing St" />
  <c:set target="${address}" property="postcode"> SW1A2AJ </c:set>
  <c:out value="${address.line1}"/>
  <c:out value="${address.postcode}"/>
  <c:out value="${demo.myField}"/>
</body>

Result:
10 Downing Street SW1A2AJ hello
Note:在上面的例子中的<jsp:useBean/>Tag必须放在body里面,否则可能会出错。

3. c:if
     包含3个属性:test(required)、var、scope。
     test:条件表达式,决定是否要执行方法体里的内容。接收boolean值。
     scope:默认为Page。
     Example:

<body>
  <c:setvar="salary"scope="session"value="${2000*2}"/>
  <c:iftest="${salary > 2000}">
    <p>
      My salary is: <c:outvalue="${salary}"/>
    </p>
  </c:if>
</body>

Result:
My salary is:4000

4. c:choose、c:when、c:otherwise
     其中c:when包含一个属性:test
     其实将这三个Tag类比Java中的Switch语句就很好理解了。c:choose就像switch,c:when像case,c:otherwise像default。
     Example:

<body>
  <c:setvar="salary"scope="session"value="${2000*2}"/>
  <p>
    Your salary is : <c:outvalue="${salary}"/>
  </p>
  <c:choose>
   <c:when test="${salary <= 0}">
   Salary is very low to survive.
  </c:when>
  <c:whentest="${salary > 1000}">
  Salary is very good.
  </c:when>
  <c:otherwise>
  No comment sir...
  </c:otherwise>
  </c:choose>
</body>

Result:
Your salary is:4000
Salaryis very good.

5. c:forEach
     它包含6个属性:items、begin、end、step、var、varStatus。
     用它可以在jsp中取代Java中的for、while、do-while循环。 
     items:需要遍历的集合或者对象。
     begin:从哪一个元素开始,默认值为第一个元素。
     end:到哪一个元素结束,默认值为最后一个元素。
     step:遍历的步长,默认值为1。
     var:当前的元素。
     varStatus:保存循环状态的对象。它有一些比较实用的方法:

  • getBegin():返回begin属性的值,如果没有设置begin属性则返回null。
  • getEnd():返回end属性的值,如果没有设置end属性则返回null。
  • getCurrent():返回遍历时,当前的元素。
  • getStep():返回step属性的值,如果没有设置step属性则返回null。
  • getIndex():返回循序的索引,从0开始。
  • getCount():返回循环的轮数,从1开始。
  • isFirst():返回当前是否为遍历的第一轮。
  • isLast():返回当前是否为遍历的最后一轮。

Example:

<body>
  <c:forEachvar="i" begin="1" end="5">
  Item <c:outvalue="${i}"/><br>
  </c:forEach>
</body>

Result:
Item1
Item2
Item3
Item4
Item5

6. c:url
     它包含了4个属性:value、context、var、scope。
     value:url值。
     context:当前web应用的名字。
     var:保存url值的变量。
     scope:默认值为Page。
     Example:

<body>
  <a href="<c:urlvalue="/jsp/index.htm"/>">TEST</a>
</body>

7. c:param
     它包含两个属性:name、value。
     它一般和<c:url />一起使用,用以传递参数。
     Example:

<c:urlvalue="/index.jsp"var="myURL">
<c:paramname="trackingId"value="1234"/>
<c:paramname="reportType"value="summary"/>
</c:url>
<c:importurl="${myURL}"/>

最后会被渲染成:

/index.jsp?trackingId=1234;reportType=summary

JSTL Tag学习笔记(一)之<c: />的更多相关文章

  1. JSTL Tag学习笔记(二)之<fmt: />

    JSTL的formatting tags可以用来格式化和显示文本.日期.时间.数字.如果在JSP页面中要用到该库提供的tag的话,需要引入如下taglib: <%@ taglib prefix= ...

  2. JSTL Tag学习笔记之<fn: />

    在JSTL中也提供了一些标准的函数,但是几乎都是和操作字符串相关的函数,如果需要使用这类函数的话,应该引入下面的taglib: <%@ taglib prefix="fn" ...

  3. 【EL&JSTL】学习笔记

    一.EL表达式(形式:${ }) 1. 1 EL运算符 算术运算符: +.-.*./.% 示例 结果 ${1+1} 2 ${1-1} 0 ${1*3} 3 ${3/2} 1.5 ${5%3} 2 关系 ...

  4. [原创]java WEB学习笔记43:jstl 介绍,core库详解:表达式操作,流程控制,迭代操作,url操作

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. git分支管理与tag的学习笔记

    git分支管理学习笔记:创建dev分支:git branch dev查看分支:git branch切换分支:git checkout dev创建并切换分支:git checkout dev -b zh ...

  6. Java Web学习笔记之---EL和JSTL

    Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression  Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...

  7. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  8. Spring实战第六章学习笔记————渲染Web视图

    Spring实战第六章学习笔记----渲染Web视图 理解视图解析 在之前所编写的控制器方法都没有直接产生浏览器所需的HTML.这些方法只是将一些数据传入到模型中然后再将模型传递给一个用来渲染的视图. ...

  9. [原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

随机推荐

  1. VS2012 常用web.config配置解析之自定义配置节点

    在web.config文件中拥有一个用户自定义配置节点configSections,这个节点可以方便用户在web.config中随意的添加配置节点,让程序更加灵活(主要用于第三方插件的配置使用) 自定 ...

  2. scjp考试准备 - 5 - 重载和重写

    如下代码,在所指示的位置插入代码能够正常编译: class Alpha{ public void bar(int... x){}; public void bar(int x){}; } public ...

  3. vs2010 开发过程中调试时 有错误不中断

    出现这个的原因是调试的设置有问题,修改下设置就好了. 修改方法:点击上边工具栏中   调试--异常 出现以下页面,把引发那列复选框全部勾上,点击确定就好了.

  4. 团队作业(NABC的分析)

    我们的团队课题是游戏:躲避小球. 我认为它其中的一个优点是:丰富用户的短暂闲暇时间,使用户得到身心的放松 下面我将从N,A,B,C四个方面简述理由 N(需求):现代社会逐渐步入快节奏时代,大众生活压力 ...

  5. Mac系统如何配置adb

    在使用mac进行android开发之前,我们一般会安装android studio 或者 eclipse,无论哪一款开发软件,都少不了安装adb(Android Debug Bridge).adb(A ...

  6. Netsharp介绍

    1.1     Netsharp是什么 Netsharp定义: Netsharp业务基础平台 = 1.系统框架 + 2.元数据 + 3.平台工具 + 4.基础业务 + 5.二次开发 此五个概念请参考什 ...

  7. ReactJS入门

    React介绍 React是facebook开发基于组件驱动开发(CDD ) 的UI类库,相对于双向绑定的类库,如AngularJS,它采用单向数据流绑定.通过采用虚拟DOM的概念,是的他在性能和处理 ...

  8. Google Guava学习笔记——基础工具类Joiner的使用

    Guava 中有一些基础的工具类,如下所列: 1,Joiner 类:根据给定的分隔符把字符串连接到一起.MapJoiner 执行相同的操作,但是针对 Map 的 key 和 value. 2,Spli ...

  9. FastDFS配置文件(tracker.conf)

    # ===========================基本配置==================================== # 该配置文件是否生效 # false:生效 # true: ...

  10. BZOJ1565 植物大战僵尸

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=1565 这题看上去并不会做,结果又是最大权闭合子图的裸题. 于是就去看了一发论文,明白建图的 ...