zoukankan      html  css  js  c++  java
  • 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>

    运行结果

     

    判断标签<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>

    运行结果

     

    代码

    <%@ 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>
    

    运行结果

     

    循环标签<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所想

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

    原创文章,转载请注明出处:http://www.cnblogs.com/beijiguangyong/
  • 相关阅读:
    JS调用App方法及App调用JS方法
    提升用户体验之 选用合适的鼠标光标
    js仿QQ拖拽删除
    Linux下安装 mongodb
    QQ分享-定制分享卡片
    js判断浏览器语言实现网站国际化
    js复制内容到剪切板
    为什么会有堆内存和栈内存之分
    Avro实现RPC
    zookeeper学习day01
  • 原文地址:https://www.cnblogs.com/beijiguangyong/p/2847142.html
Copyright © 2011-2022 走看看