JSTL标签是一个实现web功能的定制标签库,包括输出功能,条件判断,循环等,使用JSTL标签,为动态编写WEB应用程序提供了很大的方便性,能很好的和JAVA语言和HTML进行结合。下面我们看看jstl标签的用法
1.环境搭建
下载jar包 http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/ ,jstl包括两个jar包,standard.jar和jstl.jar包,把这两个JAR包添加到项目中,这样JSTL必须的环境就搭建好了
2. EL表达式
使用EL表达式,我们可以动态的在页面中输出变量,EL表达式的使用 ${变量}
<!-- EL表达式用法 -->
<%session.setAttribute("skuname", "白色运动鞋"); %>
${skuname}
${3+5}
3. out标签
out标签是JSTL中使用最多,最常用的标签。在使用JSTL标签的时候,要在页面中引入组件,添加如下标签
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%session.setAttribute("skuname", "白色运动鞋"); %>
${skuname}
${3+5}
<c:out value="${skuname}"></c:out>
<c:out value="商品名称"></c:out>
4. set标签
通过SET标签,可以动态定义变量,并赋值,还可以为javabean对象赋值
<!-- set标签用法 -->
<c:set value="0002" var="skucode" scope="session"> </c:set>
<c:out value="${skucode}"></c:out>
<c:set var="skuname" scope="session">太阳镜 </c:set>
<c:out value="${skuname}"></c:out>
给JAVABEAN对象赋值,在页面中引入JAVA对象
<jsp:useBean id="category" class="dto.Category"></jsp:useBean>
<Br/>
<!-- 给JAVA对象赋值 -->
<c:set target="${category}" property="name" value="太阳镜"></c:set>
<c:out value="${category.name}"></c:out>
<c:set target="${category}" property="catcode" value="00008"></c:set>
<c:out value="${category.catcode}"></c:out>
target表示对象
property表示对象属性
value表示对象值
5.Remove标签
Remove是一个删除标签,可以删除页面中定义的变量,
<c:set value="50" var="num" scope="session"> </c:set>
<c:out value="${num}"></c:out>
6.Catch标签
catch主要用来捕捉异常。
<c:catch var="result">
<c:set target="${ss}" property="name" value="太阳镜"></c:set>
</c:catch>
<c:out value="${result}"></c:out>
<Br/>
7.IF标签
if标签主要用来条件判断。
<c:if test="${count>5}" var="info">
<c:out value="数量大于5"></c:out>
</c:if>
<c:out value="${info}"></c:out>
<c:out value="${count}"></c:out>
<Br/>
8.choose
choose和IF标签一样,也用来做条件判断,可以根据指定的条件进行不同的跳转
<!-- choose标签 -->
<c:choose>
<c:when test="${count>5}">
<c:out value="优秀"></c:out>
</c:when>
<c:when test="${count<0}">
<c:out value="差"></c:out>
</c:when>
<c:otherwise>
<c:out value="一般" ></c:out>
</c:otherwise>
</c:choose>
9. foreach标签
foreach标签主要用来循环
<Br>
<!-- foreach标签 -->
<Br>
<%
List<String> list=new ArrayList<String>();
list.add("优秀");
list.add("一般");
list.add("差");
request.setAttribute("list", list);
%>
<c:forEach var="item" items="${list}" >
<c:out value="${item}" ></c:out>
</c:forEach>
10.forToken
forToken主要用来分隔字符串
<!-- forToken标签 -->
<c:forTokens items="1,2,3" delims="," var="item">
<c:out value="${item}" ></c:out>
</c:forTokens>
11.其他标签
<!-- import标签 -->
<c:import url="http://www.jd.com/"></c:import>
<!-- redirect标签 -->
<c:redirect url="http://www.jd.com/">
</c:redirect>
<!-- url标签 -->
<c:url value="http://www.jd.com/" var="link">
</c:url>
<A href="${link}">链接地址</A>
全部代码如下
package dto;
public class Category {
private String catcode;
public String getCatcode() {
return catcode;
}
public void setCatcode(String catcode) {
this.catcode = catcode;
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<jsp:useBean id="category" class="dto.Category"></jsp:useBean>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<!-- EL表达式用法 -->
<%session.setAttribute("skuname", "白色运动鞋"); %>
${skuname}
${3+5}
<c:out value="${skuname}"></c:out>
<c:out value="商品名称"></c:out>
<Br/>
<!-- set标签用法 -->
<c:set value="0002" var="skucode" scope="session"> </c:set>
<c:out value="${skucode}"></c:out>
<c:set var="skuname" scope="session">太阳镜 </c:set>
<c:out value="${skuname}"></c:out>
<Br/>
<!-- 给JAVA对象赋值 -->
<c:set target="${category}" property="name" value="太阳镜"></c:set>
<c:out value="${category.name}"></c:out>
<c:set target="${category}" property="catcode" value="00008"></c:set>
<c:out value="${category.catcode}"></c:out>
<Br/>
<!-- Remove标签 -->
<c:set value="50" var="num" scope="session"> </c:set>
<c:out value="${num}"></c:out>
<Br/>
<!-- catch标签 -->
<c:catch var="result">
<c:set target="${ss}" property="name" value="太阳镜"></c:set>
</c:catch>
<c:out value="${result}"></c:out>
<Br/>
<!-- if标签 -->
<%int count=10; request.setAttribute("count",count);%>
<c:if test="${count>5}" var="info">
<c:out value="数量大于5"></c:out>
</c:if>
<c:out value="${info}"></c:out>
<c:out value="${count}"></c:out>
<Br/>
<!-- choose标签 -->
<c:choose>
<c:when test="${count>5}">
<c:out value="优秀"></c:out>
</c:when>
<c:when test="${count<0}">
<c:out value="差"></c:out>
</c:when>
<c:otherwise>
<c:out value="一般" ></c:out>
</c:otherwise>
</c:choose>
<Br>
<!-- foreach标签 -->
<Br>
<%
List<String> list=new ArrayList<String>();
list.add("优秀");
list.add("一般");
list.add("差");
request.setAttribute("list", list);
%>
<c:forEach var="item" items="${list}" >
<c:out value="${item}" ></c:out>
</c:forEach>
<Br>
<!-- forToken标签 -->
<c:forTokens items="1,2,3" delims="," var="item">
<c:out value="${item}" ></c:out>
</c:forTokens>
<!-- import标签 -->
<c:import url="http://www.jd.com/"></c:import>
<!-- redirect标签 -->
<c:redirect url="http://www.jd.com/">
</c:redirect>
<!-- url标签 -->
<c:url value="http://www.jd.com/" var="link">
</c:url>
<A href="${link}">链接地址</A>
</body>
</html>