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
作者:make dream
出处:http://www.cnblogs.com/penghongwei/
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。