JSTL标签解析

JSTL标签(jsp的内置标签)主要包含四大标签库:

   *core--c标签 (重点)

   *fmt--格式化标签库

   *sql--数据库标签库(已过时)

   *xml--xml标签库(已过时)

 

1. 导入标签库

   *导包(如果是使用myeclipse开发,那么会自动在lib目录下生成jstl-1.2.jar、standard-1.1.2.jar两个包)

   * 在jsp页面中使用taglib指令来导入标签库

<%@ taglib prefix ="c" uri="http://java.sun.com/jsp/jstl/core" %>

备注:一般前缀都取名“c”,故此称其为c标签。

 

2. core标签库常用标签

 (1)out  输出

<c:out value="${aaa}"/>    <%--可以输出字符串也可以是el表达式--%>

 (2)set  设置

<c:set var="a" value="hello" scope="session"/>    <%--注意最后的斜杠要写--%>

<c:set var="user" value=user  scope="session"/>    <%--如此可以在jsp页面中免去在java脚本中存值,可以用c

标签存值--%>

 (3) remove 移除

<c:remove var="a" scope="session">     <%--移除session域中所有的名为a域值,若没有指定域,则移除全域范围--

%>

  (4)url  超链接 输出路径

url标签常用于超链接和表单

 <c:url value="/index.jsp"/>      <%--将输出index.jsp文件的路径--%>
 <c:url value="/index.jsp">                         <%--输出带有参数的url--%>
     <c:param name="name "value="kaixuan"/>      
 </c:url>

<a href="<c:url value="/index.jsp"/>">请点击我</a>    <%--在超链接中使用url标签--%>

 (5)if以及choose标签

 if以及choose标签相当于java中的if以及if else语句,并且在jsp中起到代替java脚本的作用

代码示例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!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>测试JSTL中的if和Choose标签</title>
</head>
<body>
   <c:set var="name" value="kaixuan" scope="session"/>
   
   <c:if test="${ not empty sessionScope.name }">
            <c:out value="name"></c:out>
   </c:if> 
   
   <c:choose>
      <c:when test="${empty sessionScope.name }">请给出name的值!</c:when>
      <c:otherwise>很好,谢谢你的name值!</c:otherwise>
   </c:choose>
</body>
</html>

备注:if标签<c:if test="${条件}"> 当条件为true时执行标签体内容hello </c:if> 其中test属性的值一定要是布尔类型 。   
 

(6)forEach标签

实现java脚本中的for循环。

 <%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8" import="java.util.*;"%>
<!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>测试JSTL中的forEach标签</title>
</head>
<body>
 <%
  ArrayList<String> list = new ArrayList<String>();
  list.add("one");
  list.add("two");
  list.add("three");
  pageContext.setAttribute("list", list);               
 %>
 
 <c:forEach var="ele" items="${list }" >
         ${ele }  <br/>
 </c:forEach>
</body>
</html>

参数讲述:

*         var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。

*         items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。

*          varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。

*          begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。

*         end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。

*          step:迭代的步长。

 

你可能感兴趣的:(jstl,标签库)