您的位置:首页 > Web前端 > JavaScript

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: