jstl标签库

JSTL(JSP Standard Tag Libraryjsp标准标签库)ApacheEL表达式的扩展,也就是说JSTL依赖EL表达式。

但是它不是jsp内置的标签,所以用的时候需要我们自己导包,以及指定标签库。

Jstl标签库一共包含了四大标签库:

core:核心标签库,这是我们学习的重点;JSP规范为核心标签库建议的前缀名为c

 fmt:格式化标签库,在这个标签库中,我们只需要学习两个标签即可;

sql:数据库标签库,这个标签库已经过时;

xmlxml标签库,这个标签库已经过时。

jstl标签库的使用

导入jar包;

在使用标签的jsp页面中使用taglib指令导入标签库。在jsp页面导入jstl的核心标签库:<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%>

core标签库常用标签

<c:out/>

表示向浏览器端输出,可以是字符串常量,例如:<c:out value=”aaa”/>,也可以是EL表达式,例如:<c:out value=”${aaa}”/>

<c:set/>

set标签的作用就是设置域的属性,其用法格式如:<c:set var=”xxx” value=”xxx” scope=”xxx”/>

var:定义变量的名字;

value:表示变量的值,可以是EL表达式;

scope:表示将设置的变量存放在哪个域中,默认是page域,可选值为:pagerequestsessionapplication

<c:remove/>

remove标签的作用是删除域中的数据,其在jsp页面中的用法:<c:remove var=”xxx” scope=”xxx”/>

var:指定删除变量的名字;

scope:指定从哪个域中删除指定的变量,可选值为:pagerequestsessionapplication;如果没有指定scope的值,则表示删除所有域中的名字为指定值的变量,如果指定了scope的值,那么将删除指定域中的指定变量。

<c:url/>

url标签的作用就是输出一个url路径,用法如:<c:url value=”xxx”/>。其中value属性的值是一个路径,url标签会在该路径前面添加上当前项目的名称。例如:<c:url value=”/index.jsp”/>,它会输出:/项目名/index.jsp。另外它还有另外两个属性:var。如果在url标签中添加了var这个属性,那么它不会再将路径输出,而是将路径保存在scope属性指定的域中,默认是保存在page域中,名字为var属性的值。

url标签中还包含了一个子标签:<c:param>,这个子标签的作用就是在url路径后面添加参数

<c:url value=”/index.jsp”>

<c:param name=”username” value=”张三”/>

</c:url>

以上例子输出来的url路径是:/项目名/index.jsp?username=%e5%bc%a0%e4%b8%89。其中username的值“张三”被url编码了,说明使用param标签会自动对中文进行url编码。

需要注意的是,url标签的value属性的值必须要以“/”开头,否则会出现问题,例如<c:url value=”index.jsp”/>,输出的结果是:index.jsp

if标签

<c:if test=”表达式”>标签体</c:if>

if标签中没有else语句

choose标签

<c:choose>

  <c:when test="xxx">xxx</c:when>

  <c:when test="xxx">xxx</c:when>

<c:when test="xxx">xxx</c:when>

  ...

  <c:otherwise>xxx</c:otherwise>

 </c:choose>

forEach标签

forEach标签在我们以后的开发中用的很多,它的作用就是循环遍历数组或集合,也可以利用计数的方式来循环

<c:forEach var=”i” begin=”1” end=”10”>

${i}

</c:forEach>

以上就是定义一个变量ii的值从1开始遍历到10结束。并且这个变量i被放在了page域中。

下面来分析以上三个属性的作用:

var:定义循环变量的名称;

begin:设置循环变量从几开始;

end:设置循环变量到几结束;

还有一个step属性,用来设置每次循环增长的大小,默认值为1。

forEach标签之循环数组

<%

String[] strs = {"one""two"};

request.setAttribute("strs", strs);

%>

<c:forEach items="${strs }var="str">

 ${str }<br/>

</c:forEach>

items:指定要循环的变量,可以是一个数组也可以是一个集合,默认是支持EL表达式;

var:把数组或集合中遍历的每一个元素赋值给var指定的变量。

forEach标签的循环状态

<%

ArrayList<String> list = new ArrayList<String>();

list.add("");

list.add("");

list.add("");

pageContext.setAttribute("list", list);

%>

<c:forEach items="${list }var="ele" varStatus="vs">

${vs.index} ${vs.count } ${vs.first } ${vs.last } ${vs.current }<br/>

</c:forEach>

varStatus属性就是用来记录循环状态的,它可以创建一个循环变量vs,该循环变量有如下属性:

count:用来记录循环元素的个数;

index:用来记录所循环元素的下标;

first:判断当前循环的元素是否是第一个元素;

last:判断当前循环的元素是否是最后一个元素;

current:代表当前循环的元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值