JSP学习笔记(三)---JSTL标签核心库
2015-07-31 21:57
639 查看
JSTL
全称为:JavaServer Pages Standard Tag Library。这里只学习它的核心标签库(core)。
c:out
用于输出一段文本内容到pageContext对象当前保存的“out”对象中。<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <h1>输出常量</h1><hr> <c:out value="字符串常量"></c:out> <h1>输出变量</h1><hr> <% String name = "乔帮主"; pageContext.setAttribute("name", name); %> <c:out value="${name }"></c:out> <h1>输出默认值</h1><hr> <% String addr = "铁西区"; //pageContext.setAttribute("addr", addr); //如果域中没有该属性,则会输出默认值"沈阳"。 %> <c:out value="${addr }" default="沈阳"></c:out> </body> </html>
c:set
用于把某一个对象存在指定的域范围内,或者设置Web域中的java.util.Map类型的属性对象或JavaBean类型的属性对象的属性。<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page import="me.zipstream.domain.Person" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <h1>设置或修改域中的属性值</h1><hr> <c:set var="name" value="无双" ></c:set><%-- 不设置scope默认值为page --%> <c:set var="name" value="韦小宝" scope="request"></c:set> ${name } <h1>设置或修改域中的Map的值</h1><hr> <% Map map = new HashMap(); pageContext.setAttribute("map", map); %> <c:set target="${map }" property="phoneNum" value="10010"></c:set> <c:set target="${map }" property="phoneNum" value="10086"></c:set> ${map.phoneNum } <h1>修改域中JavaBean的属性的值</h1><hr> <% Person p = new Person(); pageContext.setAttribute("p", p); %> <c:set target="${p }" property="name" value="阿珂"></c:set> ${p.name } </body> </html>
c:remove
用于删除各种Web域中的属性。<c:remove var="varName" [scope="{page|request|session|application}"] />
如果没指定scope属性,则会把各个域中所有指定名称的属性值全部删除。
删除后在浏览器显示被删除的属性值。
c:catch
用于捕获嵌套在标签体中的内容抛出的异常,其语法格式如下:<c:catch [var="varName"]>nested actions</c:catch>
var属性用于标识
<c:catch>标签捕获的异常对象,它将保存在page这个Web域中。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <c:catch var="e"> <% int i = 1/0; %> </c:catch> ${e.message } </body> </html>
浏览器输出结果:
/ by zero。
c:if
<c:if test=“”>标签可以构造简单的“if-then”结构的条件表达式。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <c:if test="${2>1 }"> 确实是这样。 </c:if> <c:if test="${2<=1 }"> 你再试试。 </c:if> </body> </html>
c:choose
<c:choose>标签用于指定多个条件选择的组合边界,它必须与
<c:when>和
<c:otherwise>标签一起使用。使用
<c:choose>,
<c:when>和
<c:otherwise>三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <% int day = 6; pageContext.setAttribute("day", day); %> <c:choose> <c:when test="${day == 1}"> 星期一 </c:when> <c:when test="${day == 2}"> 星期二 </c:when> <c:when test="${day == 3}"> 星期三 </c:when> <c:when test="${day == 4}"> 星期四 </c:when> <c:when test="${day == 5}"> 星期五 </c:when> <c:otherwise> 周末 </c:otherwise> </c:choose> </body> </html>
c:forEach
用于对一个集合对象中的元素进行循环迭代操作,或者按指定的次数重复迭代执行标签体中的内容。<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <h1>遍历数组中的数据</h1><hr> <% String[] cities = {"北京", "上海", "深圳", "杭州"}; pageContext.setAttribute("cities", cities); %> <c:forEach items="${cities }" var="city"> ${city }<br> </c:forEach> <h1>遍历集合中的数据</h1><hr> <% List list = new ArrayList(); list.add("北京"); list.add("上海"); list.add("深圳"); list.add("杭州"); pageContext.setAttribute("list", list); %> <c:forEach items="${list }" var="city"> ${city }<br> </c:forEach> <h1>遍历Map中的数据</h1><hr> <% Map map = new LinkedHashMap(); map.put("name", "段誉"); map.put("gender", "男"); map.put("addr", "大理"); map.put("wife", "王语嫣"); pageContext.setAttribute("map", map); %> <c:forEach items="${map }" var="entry"> ${entry.key }: ${entry.value }<br> </c:forEach> <h1>遍历10到100的偶数,如果数字所在的位置是3的倍数,显示成红色</h1><hr> <c:forEach begin="10" end="100" step="2" var="i" varStatus="stat"> <c:if test="${stat.count % 3 == 0}"> <font color="red"> ${i } </font> </c:if> <c:if test="${stat.count % 3 != 0}"> ${i } </c:if> </c:forEach> </body> </html>
c:forTokens
用来浏览一字符串中所有的成员,其成员是由定义符号所分隔的。<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <c:forTokens items="www.zipstream.me" delims="." var="str"> ${str }<br> </c:forTokens> </body> </html>
浏览器输出结果:
www
zipstream
me
相关文章推荐
- JavaScript学习要点(十二)
- javascript实现倒计时自动跳转页面
- 初级Javascript(一)
- js 将json字符串转换为json对象的方法解析
- Javascript高级程序设计读书笔记(第10章 DOM)
- The JavaScript Event Loop: Explained
- 04_单例模式
- 跨域的三种方法总结:代理,JSONP,以及XHR2
- 图片无缝循环滚动
- 每天一个小知识点19(Javascript对象转换成json的函数)
- javascript事件驱动及事件处理
- 使用selenium抓取JS动态生成的页面
- CAS——性能优化第一步,在线访问外网js
- jstring 和char 之间的转换方法
- dataTable 转换json串
- js判断数据类型
- JSON空格转义(php、javascript)
- ExtJs4.0日期控件只显示年月按年月格式会跳月的解决办法
- boost库之property tree库,解析JSON、XML、INI等
- JSP之重定向与转发的区别【入门版】