jsp之jstl标签

3 篇文章 0 订阅

一.在java项目中引入jstl:

1.jar包的获取:

首先通过 maven的pom文件将standard-1.1.2.jar和 jstl-1.2.jar这两个jar包加入项目:

        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

2.jar包的引入

如果利用Tomcat来部署项目的话需要将以上两个jar包拷贝到tomcat的lib目录下。

3.在JSP页面头部使用<%@ taglib %>引入标签库
<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>    
<%@ taglib uri=”http://java.sun.com/jsp/jstl/fmt” prefix=”fmt”%>   
<%@ taglib uri=”http://java.sun.com/jsp/jstl/functions” prefix=”fn”%>  
<%@ taglib uri=”http://java.sun.com/jsp/jstl/sql” prefix=”sql”%>   不常用
<%@ taglib uri=”http://java.sun.com/jsp/jstl/xml” prefix=”x”%>   不常用

  • prefix用来指定前缀名,我们通过该名来使用JSTL

  • uri相当于库的唯一标识,因为JSTL由多个不同的库组成,使用该属性指定要导入哪个库。

    三、核心标签(Core Tags)
    Core标签库,包括了我们最常用的标签。
    要使用Core标签库需要在JSP页面中加入:
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <c:out>

    <c:out>用于计算一个表达式并将结果输出到当前页面。
    功能类似于JSP表达式<%= >和EL表达式${}
    可以设置的属性
    value
    作用:要输出的值
    参数类型:Object
    default
    作用:当value为null时显示的默认值。
    参数类型:Object
    escaXml
    作用:是否对特殊字符进行转义。
    参数类型:boolean
    例:
    <c:out value="${user.name}" default="" escapeXml="true"></c:out>
    <c:set>

    <c:set>用于添加或修改域中的属性
    可以设置的属性:
    value
    作用:要设置的值
    参数类型:Object
    var
    作用:表示域中存放的属性名。
    参数类型:String
    scope
    作用:指定域(page、request、session、application),若不指定则为page域对象
    参数类型:String
    target
    作用:要修改的域对象的属性名(必须是JavaBean或者Map)
    参数类型:Object
    property
    作用:指定要修改的对象的属性名
    参数类型:String

    设置属性:
    <c:set var="key" value="value" scope="request"></c:set>
    修改属性:
    <c:set property="name" target="${user}" value="孙悟空"></c:set>
    <c:remove>

    <c:remove>用于移除域中的属性
    可以设置的属性:
    var
    作用:设置要移除的属性的名字
    作用:String
    scope
    作用:设置要移除属性所在的域,若不指定则删除所有域中的对应属性
    参数类型:String
    例:
    移除所有域中key属性:<c:remove var="key"/>
    移除request中的key属性: <c:remove var="key" scope="request"/>
    <c:if>

    <c:if>用于实现if语句的判断功能
    可设置的属性
    test
    作用:设置if判断的条件,用于判断标签体是否被执行
    参数类型:boolean
    var
    作用:用于指定接收判断结果的变量名
    参数类型:boolean
    scope
    作用:指定判断结果保存到哪个域
    参数类型:String
    例:
    <c:if test="${empty user }" var="isUserEmpty" scope="request">
                       用户为空
             </c:if>
    <c:choose>、<c:when>、<c:otherwise>
    只要有一个when执行,其他不执行
    <c:choose>标签里面不能放注释
    <c:choose>、<c:when>、<c:otherwise>三个标签配合使用,功能类似于Java中的if/else
    <c:choose>是<c:when>和<c:otherwise>的父标签
    <c:when>的属性
    test
    作用:用于设置判断条件,若正确则c:when中的代码执行,否则不执行
    参数类型:boolean
    <c:otherwise>
    作用:如果所有的<c:when>都没有执行则执行<c:otherwise>的标签体
    例:
    <c:choose>
                  <c:when test="${param.age>=18 }">
                           您已经成年
                  </c:when>
                  <c:otherwise>
                           您未成年
                  </c:otherwise>
         </c:choose>
    <c:forEach>
    <c:forEach>用于对多个对象的集合进行迭代,重复执行标签体,或者重复迭代固定的次数。
    可设置属性:
    var
    作用:设置遍历出对象的名称并且将其放入到page域中
    参数类型:String
    items
    作用:指定要遍历的集合对象
    参数类型:数组、字符串和各种集合
    varStatus
    作用:指定保存迭代状态的对象的名字,该变量引用的是一个LoopTagStatus类型的对象,通过该对象可以获得一些遍历的状态:
    count
    index
    first
    last
    name
    参数类型:String
    begin
    作用:指定遍历的开始位置
    参数类型:int
    end
    作用:指定遍历的结束位置
    参数类型:int
    step
    作用:迭代的步长
    参数类型:int
    例:
    <c:forEach items="${list}" var="user" begin="0" end="4" step="2" varStatus="vs">
                       ${vs.index} -- ${user.name } -- ${user.age }<br />
             </c:forEach>
    <c:url>
    <c:url>主要用来重写URL地址
    可设置的属性:
    value
    作用:设置要处理的URI地址,注意这里要以/开头
    可接受参数:String
    var
    作用:修改后存储到域对象中的uri属性名。
    可接受参数:String
    scope
    作用:设置修改后uri存放的域
    可接受参数:String
    例:
    使用相对路径:
    <c:url value="index.jsp" var="uri" scope="request">
             <c:param name="name" value="张三"></c:param>
    </c:url>
    会生成如下地址:index.jsp?name=%E5%BC%A0%E4%B8%89
    使用绝对路径会自动在路径前加上项目名:
    <c:url value="/index.jsp" var="uri" scope="request">
             <c:param name="name" value="张三"></c:param>
    </c:url>
    会生成如下地址:/Test_JSTL/index.jsp?name=%E5%BC%A0%E4%B8%89
    <c:redirect>

    <c:redirect>主要用于将请求重定向到另一个资源地址
    可设置的属性:
    uri
    作用:指定要重定向到的目标地址,注意这里指定绝对路径会自动加上项目名
    参数类型:String
    例:
    <c:redirect url="/target.jsp"></c:redirect>
    四、 

    JSTL函数(JSTL Functions)
    函数标签库是在JSTL中定义的标准的EL函数集。
    函数标签库中定义的函数基本上都是对字符串的操作。
    引入:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    fn:contains和fn:containsIgnoreCase

    作用:用于判断字符串中是否包含指定字符串,containsIgnoreCase忽略大小写。
    语法:fn:contains(string,subString)àboolean
    参数和返回值:
    参数
    类型
    作用
    string
    String
    源字符串
    subString
    String
    要查找的字符串
    返回值
    boolean
    若string中包含subString则返回true,否则返回false
    例:
             ${fn:contains("hello","HE")} -->false
             ${fn:containsIgnoreCase("hello","HE")}-->true
    fn:startsWith和fn:endsWith
    作用:判断一个字符串是否以指定字符开头(startsWith)或结尾(endsWith)
    语法:fn:startsWith(string , prefix) --> boolean
               fn:endsWith(string,suffix)-->boolean
    参数和返回值:
    参数
    类型
    作用
    string
    String
    源字符串
    prefix或suffix
    String
    要查找的前缀或后缀字符串
    返回值
    boolean
    符合要求返回true,否则返回false
    例:${fn:startsWith("hello","he") } --> true
             ${fn:endsWith("hello","he") }-->false
    fn:indexOf
    作用:在一个字符串中查找指定字符串,并返回第一个符合的字符串的第一个字符的索引。
    语法:fn:indexOf(string,subString)-->int
    参数和返回值:
    参数
    类型
    作用
    string
    String
    源字符串
    subString
    String
    要查找的字符串
    返回值
    int
    若在string中找到subString则返回第一个符合的索引,若没有符合的则返回-1
    例:${fn:indexOf("hello",'e') }--> 1
    fn:replace
    作用:将一个字符串替换为另外一个字符串,并返回替换结果
    语法:fn:replace(str , beforeSubString , afterSubString) --> String
    参数和返回值:
    参数
    类型
    作用
    str
    String
    源字符串
    beforeSubString
    String
    被替换的字符串
    afterSubString
    String
    要替换的新字符串
    返回值
    String
    替换后的字符串
    例:${fn:replace("hello","llo",'e') } --> hee
    fn:substring
    作用:截取字符串
    语法:fn: substring (str , beginIndex , endIndex) --> String
    参数和返回值:
    参数
    类型
    作用
    str
    String
    源字符串
    beginIndex
    int
    开始位置索引(包含该位置)
    endIndex
    int
    结束位置索引(不包含自身)
    返回值
    String
    返回截取的字符串
    例:${fn:substring("hello",1,3) } --> el
    fn:substringBefore和fn:substringAfter
    作用:返回一个字符串指定子串之前(substringBefore)之后(substringAfter)的字符串
    语法:fn: substringBefore(string,subString)-->String
    fn: substringAfter (string,subString)-->String
    参数和返回值:
    参数
    类型
    作用
    str
    String
    源字符串
    subString
    int
    指定str中的一个子串,该串之前或之后的字符串将被返回。
    返回值
    String
    返回截取的字符串
    例:${fn:substringBefore("hello","l") } -->he
             ${fn:substringAfter("hello","l") }-->lo
    fn:split
    作用:将一个字符串拆分成字符串数组。
    语法:fn:split(string,delimiters)-->String
    参数和返回值:
    参数
    类型
    作用
    str
    String
    要被拆分的字符串
    delimiters
    String
    指定根据什么内容拆分字符串
    返回值
    String[]
    返回拆分后的字符串数组
    例:${fn:split("a-b-c-d-e-f-g","-")}à返回一个数组对象[a,b,c,d,e,f,g]
    fn:join
    作用:将数组中所有元素连接成一个字符串
    语法:fn:join(array,sparator)-->String
    参数和返回值:
    参数
    类型
    作用
    str
    String
    要被拆分的字符串
    sparator
    String
    在结果中每个元素之间的分隔符
    返回值
    String[]
    拼接之后的结果
    例:
    <%
    String[] strs = new String[]{"a","b","c","d","e","f"};
    pageContext.setAttribute("strs", strs);
    %>
    ${fn:join(strs,'-') }
             返回:a-b-c-d-e-f
    fn:toLowerCase和fn:toUpperCase
    作用:将字符串都转换成大写(toUpperCase)或小写(toLowerCase)字符
    语法:
             fn: toLowerCase (str)-->String
    fn: toUpperCase(str)-->String
    参数和返回值:
    参数
    类型
    作用
    str
    String
    源字符串
    返回值
    String
    转换为大写或小写的字符串
    例:${fn:toLowerCase("ABCDEFG") } --> abcdefg
             ${fn:toUpperCase("abcdefg") }-->ABCDEFG
    fn:trim
    作用:去掉字符串的前后空格
    用法:fn:trim(str)àString
    参数和返回值:
    参数
    类型
    作用
    str
    String
    源字符串
    返回值
    String
    去掉前后空格的结果
    例:${fn:trim("     hello  ") } --> hello
    fn:length
    作用:返回集合或者字符串的长度
    用法:fn:trim(input)-->int
    参数和返回值:
    参数
    类型
    作用
    input
    String、集合、数组
    要计算长度的目标
    返回值
    int
    集合或字符串的长度
    例:${fn:length("hello") }-->5

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值