分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

JSTL

发布时间:2023-09-06 01:26责任编辑:傅花花关键词:暂无标签

1、什么是JSTL?

  JSTL:JavaServer Pages Standard Tag Library,JSP标准标签库,它封装了JSP应用的通用核心功能。(JSTL一般需要与EL表达式联合使用)

2、为什么要用JSTL?

  实现了JSP页面中的代码复用(基于标签库原理,重复率较高的代码块支持复用,提高效率)

  书写JSP页面时可读性更强(跟xml很像,便于前端查看和参与开发)

3、如何使用JSTL?

  导入JSTL.jar和standard.jar到/WEB-INF/lib/下。

  采用taglib指令引入标签库即在JSP添加引用

4、项目中常用到的JSTL

  4.1、核心标签:引用和新标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/JSTL/core"%>

    JSTL 核心标签库标签共有13个,功能上分为4类:

      表达式控制标签:out、set、remove、catch

      流程控制标签:if、choose、when、otherwise

      循环标签:forEach、forTokens

      URL操作标签:import、url、redirect

    自己平时用到的有以下几种:

      <c:out>用于在JSP中显示数据。escapeXml表示是否转换特殊字符,默认值true;

      <c:set>用于设置变量值和对象属性

      <c:if>用于判断表达式的值,如果表达式的值为 true 则执行其主体内容。

      <c:choose>标签与Java switch语句的功能一样,用于在众多选项中做出选择。switch语句中有case,而<c:choose>标签中对应有<c:when>,switch语句中有default,而<c:choose>标签中有<c:otherwise>

      <c:forEach>标签的作用就是迭代输出标签内部的内容。它既可以进行固定次数的迭代输出,也可以依据集合中对象的个数来决定迭代的次数

      <c:forTokens>标签通过指定分隔符将字符串分隔为一个数组然后迭代它们。(如果分隔符delims为多个字符,就表示使用多种分隔符进行分割)

  4.2、格式化标签:用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/JSTL/fmt"%>

      平时项目中只用到了 <fmt:formatDate pattern="yyyy-MM-dd" value="${Date}"/>

    4.3、JSTL函数:可以直接在表达式中使用,大大的简化了代码,提供代码的可读性,引用JSTL函数标签库的语法如下:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/JSTL/functions" %>

fn:contains判断字符串是否包含另外一个字符串<c:if test="${fn:contains(name, searchString)}">
fn:containsIgnoreCase判断字符串是否包含另外一个字符串(大小写无关)<c:if test="${fn:containsIgnoreCase(name, searchString)}">
fn:endsWith判断字符串是否以另外字符串结束<c:if test="${fn:endsWith(filename, ‘.txt‘)}">
fn:escapeXml把一些字符转成XML表示,例如<字符应该转为&lt;${fn:escapeXml(tag.tagName)}
fn:indexOf子字符串在母字符串中出现的位置${fn:indexOf(name, ‘-‘)}
fn:join将数组中的数据联合成一个新字符串,并使用指定字符格开${fn:join(array, ‘;‘)}
fn:length获取字符串的长度,或者数组的大小${fn:length(shoppingCart.products)}
fn:replace替换字符串中指定的字符${fn:replace(text, ‘-‘,‘?‘)}
fn:split把字符串按照指定字符切分${fn:split(customerNames, ‘;‘)}
fn:startsWith判断字符串是否以某个子串开始<c:if test="${fn:startsWith(product.id, ‘100-‘)}">
fn:substring获取子串${fn:substring(zip, 6, -1)}
fn:substringAfter

获取从某个字符所在位置开始的子串

${fn:substringAfter(zip, ‘-‘)}
fn:substringBefore获取从开始到某个字符所在位置的子串${fn:substringBefore(zip, ‘-‘)}
fn:toLowerCase转为小写${fn.toLowerCase(product.name)}
fn:toUpperCase转为大写字符${fn.UpperCase(product.name)}
fn:trim去除字符串前后的空格${fn.trim(name)}

5、应用小实例:

   <c:set value="" var="Ids" />
        <c:set value="" var="Names" />
        <c:forEach var="item" items="${groups}" varStatus="status">
            <c:choose>
                <c:when test="${status.first}">
                    <c:set value="${item.groupId}" var="Ids" />
                    <c:set value="${item.groupName}" var="Names" />
                </c:when>
                <c:otherwise>
                    <c:set value="${Ids},${item.groupId}" var="Ids" />
                    <c:set value="${Names},${item.groupName}" var="Names" />
                </c:otherwise>
            </c:choose>
        </c:forEach>  

JSTL

原文地址:http://www.cnblogs.com/llfddmm/p/7878617.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved