29.JSTL

作者: 若愚同学 | 来源:发表于2018-06-19 23:16 被阅读0次

    为了完全在JSP中消除Java代码,学习JAVA的标签库:

    Java标签库:

    1:自定义标签库.

    2:标准标签库(JSTL).(SUN预先提供好的,我们使用的)
    以后学习MVC框架(Struts/Struts2/SpringMVC)的时候,都会学习一些标签.

    准备:

    1:准备JSTL相关的jar(Tomcat根/webapps/example/WEB-INF/lib).

    jstl.jar 
    standard.jar
    el-api.jar
    jsp-api.jar
    

    2:使用JSPL的JSP页面中,引入标签库:

    比如引入核心JSTL:
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    

    JSTL主要提供了5大类标签库:

    1:核心标签库:为日常任务提供通用支持,如显示和设置变量,测试条件以及其他操作(如导入和重定向web页面等)

    2:国际化(I18N)标签库,支持多种语言的引用程序

    3:SQL标签库:对访问和修改数据库提供标准化支持.

    4:XML标签库:对XML文件处理和操作系统提供支持,包括XML节点解析,迭代,基于XML数据的条件评估,以及可扩展式语言转换(Extensible Style language Transformations ,XSLT)的执行.

    5:函数标签库:通过在EL表达式中调用函数标签库中的函数来实现特定的操作,例如:

    ${fn:contains(string.substring)}.其功能是判断string字符串是否包含substring字符串.
    

    JSTL标签库的使用方法:

    图片1.png

    JSTL核心常用的标签:

    1):逻辑判断(条件选择)标签(if-elseif-else):
    单条件判断:if标签:

    语法1:没有本体内容(body):把表达式的结果赋值给变量,并存储在指定的作用域中.

    <c:if test="boolean表达式" var="varName" [scope="{page|request|session|application}"]/>
    语法2:有本体内容,若表达式为true,则显示之间的文本内容.
    <c:if test="boolean表达式" >
        本体内容
    </c:if>
    
    多条件判断:choose标签:
    <c:choose>
        <c:when test="${pro.dir_id == 1}">鼠标</c:when>
        <c:when test="${pro.dir_id == 2}">有线鼠标</c:when>
        <c:when test="${pro.dir_id == 3}">无线鼠标</c:when>
        <c:when test="${pro.dir_id == 4}">游戏鼠标</c:when>
        <c:otherwise>鼠标</c:otherwise>
    </c:choose>
    
    2):循环迭代标签(foreach):
    语法1:迭代一集合对象
    <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"]>
    本体内容
    </c:forEach>
    
    //示例代码
    /*
    需求1:迭代出集合中所有元素.
    底层:会把每一个跌大帝的元素,存放到pageContext作用域中.
    pageContext.setAttribute("e",每一个迭代的元素值);
    */
    <%
        pageContext.setAttribute("args",Arrays.asList("A","B","C","D"));
    %>
    <c:forEach items="${arrs}" var="e" varStatus="vs">
        <br/>
        ${vs.count}--${e}
    </c:forEach>
    
    
    语法2:迭代指定的次数
    <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
    本体内容
    </c:forEach>
    
    /*
        需求2:输出11到20
    */
    <c:forEach begin="11" end="20" var="num" setp="1">
        ${num}
    </c:forEach>
    

    时间格式化标签

    <%@ page language="java" contentType="text/html;charset=UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
    
    <%
        pageContext.setAttribute("data",new java.util.Date());
    %>
    ${data}<br/>
    <fmt:formatDate value="$"date" pattern="yyyy-MM-dd HH:mm:ss"/>
    

    相关文章

      网友评论

          本文标题:29.JSTL

          本文链接:https://www.haomeiwen.com/subject/mtazeftx.html