JSTL学习(一)简介及常用标签

JSTL的全名为JavaServerPages Standard Tag Library,JSP标准标签库(网上下载完成后的包为jakarta-taglibs-standard-current.zip),其主要功能是为JSP Web开发人员提供一个标准通用的标签库。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。

JSTL简介

JSTL标签是基于JSP页面的,这些标签可以插入JSP代码中,在本质上JSTL也就是提前定义好的一组标签。这些标签封装了不同的功能,当在页面上调用这个标签的时候,等于就是调用了封装起来的功能,这些标签可以在页面上输出内容、查询数据库、处理XML文档等,JSTL的标签库基本上可以分为五类,包括JSTL核心库、数据库标签库、XML操作标签库、国际化和格式标签库以及函数标签库。其中JSTL核心库包括基本的输入输出、流程控制、循环等功能;数据库标签库主要包括基本的数据库操作功能;XML操作标签库用来处理XML文档;国际化和格式标签库主要功能是处理国际化和文字格式的标准化。

利用这些标签,基本上可以实现在页面上避免使用Java代码,而且这些标签的功能是非常强大的,仅仅引入一个简单的标签,就可以实现以前在JSP页面上一大段Java才能实现的功能。这不仅使开发人员避免了重复编码,而且也有利于程序的修改和维护。

常用标签

输出标签<c:out/>:

代码

<%@ 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><c:out value="<c:out/>标签示例"/></title>
</head>
<body>
	<font size="3">	
		下面是一个字符串输出示例:<br>
		<c:out value="JSTL标签测试"/><br>
		下面是一个表达式值的输出示例:<br>
		<c:out value="${10/5}"/>
	</font>
</body>
</html>

运行结果

JSTL学习(一)简介及常用标签

 

判断标签<c:if/>与<c:choose/>,<c:when/>,<c:otherwise>:

代码

<%@ 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>   
    <title><c:out value="<c:if/>标签示例"/></title>
  </head> 
  <body>
  <font size="3">
     <c:set var="number" value="2" scope="request"/>
     <c:if test="${number==1}">
        <c:out value="给定数字的值为1"></c:out>
     </c:if>
     <c:if test="${number==2}">
        <c:out value="给定数字的值为2"></c:out>
     </c:if>
     <c:if test="${number==3}">
        <c:out value="给定数字的值为3"></c:out>
     </c:if>
   </font>
  </body>
</html>

运行结果

JSTL学习(一)简介及常用标签

 

代码

<%@ 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>   
    <title><c:out value="<c:choose/>标签示例"/></title>
  </head> 
  <body>
  <font size="3">
     <c:out value="<c:choose/>标签示例"/><br>
     <c:set var="IDE" value="Eclipse"/>
     <c:choose>
         <c:when test="${IDE=='JBuilder'}">
             <c:out value="你使用的开发工具为JBuilder"/>
         </c:when>
         <c:when test="${IDE=='Eclipse'}">
             <c:out value="你使用的开发工具为Eclipse"/>
         </c:when>
         <c:when test="${IDE=='JCreator'}">
             <c:out value="你使用的开发工具为JCreator"/>
         </c:when>
         <c:otherwise>
              <c:out value="你是高手!用记事本写代码?"/>
         </c:otherwise>
     </c:choose>
   </font>
  </body>
</html>

运行结果

JSTL学习(一)简介及常用标签

 

循环标签<c:forEach/>:

代码

<%@ page language="java" import="java.util.*" 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>   
    <title><c:out value="forEach标签示例"/></title>
  </head> 
  <body>
  <font size="3">
      <%
          ArrayList list = new ArrayList();
          for(int i=0;i<5;i++)
          {
        	  list.add(i,(i+1)*15);
          }
          request.setAttribute("list",list);
      %>
      <c:out value="forEach标签示例:"/><br>
      <c:forEach items="${list}" var="current" varStatus="status">
          <c:out value="序号:"/>
          <c:out value="${status.count}"/>
          <c:out value="值:"/>
          <c:out value="${current}"/><br>         
      </c:forEach>
   </font>
  </body>
</html>

运行结果

JSTL学习(一)简介及常用标签

 

JSTL所想

JSP当中嵌套Java代码是为了开发界面方便,如果不是用JSP只能很麻烦的输出HTML元素;而JSTL替代Java代码是为了Java代码开发方便,可以理解为一种形式上的解耦(又将Java代码与HTML元素分开)。前一种是将两项技术硬生生的结合,后者是将它们有机的结合,很明显有机结合更适合高效开发。最终的结果都是提高代码的复用性,将通用性的代码写到标签库中,在下次使用的时候可以直接拿过来使用,面向对象思想的绝佳体现!

你可能感兴趣的:(jstl)