JSTL入门

一、简介

JSTL:JavaServer Pages Standard Tag Library,提供给Java Web开发人员的一个标准通用的标签函数库,和EL来取代直接在页面上嵌入Java程序的做法,以提高程序的可读性、维护性和方便性

二、JSTL标签库组成

JSTL前缀名称URI示例
核心标签库chttp://java.sun.com/jsp/jstl/core<c:out>
国际化标签fmthttp://java.sun.com/jsp/jstl/fmt<fmt:formatDate>
数据库标签库sqlhttp://java.sun.com/jsp/jstl/sql<sql:query>
XML 标签xhttp://java.sun.com/jsp/jstl/xml<x:forEach>
函数标签funhttp://java.sun.com/jsp/jstl/functions${fn:indexOf(name,”-“)}

三、使用

使用时需要在当前JSP页面中声明引用,具体格式如下:

<%@ taglib uri="uri" prefix="prefix" %>

uri:确定使用的标签库具体的名称
prefix:前缀,为当前标签库起的一个别名

四、核心标签库使用

1、<c:set>

作用:给指定的Web域设置值

<c:set var="name" value="jingxin" scope="request"></c:set>

var:属性名称
value:属性的值
scope:确定作用域,page、request、session、application

2、<c:remove>

作用:删除指定名称的Web域

<c:remove var="name"/>

var:要删除的属性名称
注意:将会删除所有作用域的内容

3、<c:out>

作用:将内容输出到页面

<c:out value="${requestScope.name }"></c:out>
<c:out value="<a href='#'>超链接</a>" escapeXml="false"></c:out>
<c:out value="${name1 }" default="没有值"></c:out>

value:指定要输出的内容,可以使用EL表达式
escapeXml:是否转义html中的特殊字符,默认值为true
default:当内容为空时显示默认值

4、<c:if>

作用:标签计算表达式,只有当表达式的值为true,则显示其主体内容

<c:if test="${empty user1}">
   <p> user值为null</p>
</c:if>

<c:if test="${1==1 }" var="flag" scope="page">
1==1的结果为真
</c:if>
${pageScope.flag }

test:条件计算,可以使用EL表达式
var:存储test计算结果的变量名称
scpoe:指定var的域

5、<c:choose>

作用:类似于Java的Switch语句

<c:choose>
    <c:when test="${!empty user}">
        user为空
    </c:when>
    <c:when test="${!empty user }">
        user非空
    </c:when>
    <c:otherwise>
                未处理
    </c:otherwise>
</c:choose>

<c:otherwise> 相当于Switch语句中的default

6、<c:forEach>

作用:标签用于对一个集合对象中的元素进行循环迭代操作,或者按指定的次数重复迭代执行标签体中的内容

<c:forEach items="${headerValues}" var="hvs">
    ${hvs.key }  ->    <c:forEach items="${hvs.value }" var="val">
                                ${val } ####
                       </c:forEach>
    <br/>
</c:forEach>
<br/>
<c:forEach begin="0" end="10" var="num">
    <c:out value="${num }<br/>" escapeXml="false"></c:out>
</c:forEach>

var:当前迭代到的元素保存在page域中时的属性名称
items:确定遍历对象,支持EL表达式
begin:迭代开始的索引值
end:迭代结束的索引值
step:指定迭代的步长

五、示例

使用核心标签库实现九九乘法表

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<h1>九九乘法表</h1>
<br/>

<c:forEach begin="1" end="9" step="1" var="i">
    <c:forEach begin="1" end="${i}" step="1" var="j">
        ${j } * ${i } = ${i*j}  &nbsp;&nbsp;
    </c:forEach>
    <br/>
</c:forEach>

</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值