JSTL Tag学习笔记(一)之<c: />
注:本文中的例子主要来自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: />的更多相关文章
- JSTL Tag学习笔记(二)之<fmt: />
JSTL的formatting tags可以用来格式化和显示文本.日期.时间.数字.如果在JSP页面中要用到该库提供的tag的话,需要引入如下taglib: <%@ taglib prefix= ...
- JSTL Tag学习笔记之<fn: />
在JSTL中也提供了一些标准的函数,但是几乎都是和操作字符串相关的函数,如果需要使用这类函数的话,应该引入下面的taglib: <%@ taglib prefix="fn" ...
- 【EL&JSTL】学习笔记
一.EL表达式(形式:${ }) 1. 1 EL运算符 算术运算符: +.-.*./.% 示例 结果 ${1+1} 2 ${1-1} 0 ${1*3} 3 ${3/2} 1.5 ${5%3} 2 关系 ...
- [原创]java WEB学习笔记43:jstl 介绍,core库详解:表达式操作,流程控制,迭代操作,url操作
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- git分支管理与tag的学习笔记
git分支管理学习笔记:创建dev分支:git branch dev查看分支:git branch切换分支:git checkout dev创建并切换分支:git checkout dev -b zh ...
- Java Web学习笔记之---EL和JSTL
Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- Spring实战第六章学习笔记————渲染Web视图
Spring实战第六章学习笔记----渲染Web视图 理解视图解析 在之前所编写的控制器方法都没有直接产生浏览器所需的HTML.这些方法只是将一些数据传入到模型中然后再将模型传递给一个用来渲染的视图. ...
- [原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
随机推荐
- 推荐几款web站点JS(JQeury)图表(饼图,柱图,线图)
一 Google Chart Tools 官网:https://developers.google.com/chart/ 谷歌图表工具提供了一个完美的方式形象化您的网站上的数据.从简单到复杂的层次结构 ...
- Python实现NN(神经网络)
Python实现NN(神经网络) 参考自Github开源代码:https://github.com/dennybritz/nn-from-scratch 运行环境 Pyhton3 numpy(科学计算 ...
- copy-mutableCopy
copy和mutableCopy语法的目的:改变副本的时候,不会影响到源对象:调用Copy产生的对象是不可变的,调用mutableCopy产生的对象是可变的,与调用对象是否可变无关. Copy 需要先 ...
- STL之multiset
参见http://www.cplusplus.com/reference/set/multiset/ template < class T, ...
- js之Function原型
在ECMAScript中,Function(函数)类型实际上是对象.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象 ...
- cnblog评价以及团队软件的部分改善
博客评价: 1.在word2003版本里的东西复制,不能直接直接粘贴到博客发表(发生过,大部分时候可以): 2.第一次使用的时候不知道复制过来的代码都是左对齐的,(代码排版和插入图片位置不明显): 3 ...
- 软件工程随堂小作业——随机四则运算(C++)
一.设计思路: 1.程序的主体部分是循环输出,次数即题目数目由用户输入: 2.三个整型变量+rand函数来实现随机数四则运算,一个变量代表加减乘除,另外两个用作运算数: 3.用户体验:题目分三列,排列 ...
- 多种方法实现H5网页图片动画效果;
在web开发中,GIF动画效果是随处可见,比如常见的loading加载.人物奔跑的gif图片等等,那么这些都是怎么实现的呢?其实实现的原理很简单,简而言之,这些所谓的动画都是一帧一帧的图片经过一段时间 ...
- Node.js 学习(五)Node.js 事件循环
Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高. Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发. Node.j ...
- Careercup - Google面试题 - 4699414551592960
2014-05-06 13:34 题目链接 原题: we have a random list of people. each person knows his own height and the ...