JSTL标签汇总及使用总结

在JAVA项目开发中,jstl标签非常简洁、实用,可维护性非常好。现在把其常用的几个标签进行汇总


1.JSTL的最常用core标签,包含了数据展示常用的foreach循环、if判断、choose选择、set赋值、out输出等核心标签。

   
   首先在页面引入标签

  <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

标签
 描述
<c:out>用于在JSP中显示数据,就像<%= ... >
<c:set>用于保存数据
<c:remove>用于删除数据
<c:catch>用来处理产生错误的异常状况,并且将错误信息储存起来
<c:if>与我们在一般程序中用的if一样
<c:choose>本身只当做<c:when>和<c:otherwise>的父标签
<c:when><c:choose>的子标签,用来判断条件是否成立
<c:otherwise><c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import>检索一个绝对或相对 URL,然后将其内容暴露给页面
<c:forEach>基础迭代标签,接受多种集合类型
<c:forTokens>根据指定的分隔符来分隔内容并迭代输出
<c:param>用来给包含或重定向的页面传递参数
<c:redirect>重定向至一个新的URL.
<c:url>使用可选的查询参数来创造一个URL

  使用标签:

 

<c:forEach items="${resourceList}" var="r">

 <li data-id="${r.id}" data-pid="${r.parentId}"  data-tabid="form-button" data-faicon="bell" data-checked="${shirofn:in(existIds, fn:trim(r.id))}">${r.resourceName} ${shirofn:in(existIds, r.id)}</li>
 
</c:forEach>

<c:forEach>标签有如下属性:

属性描述是否必要默认值
items要被循环的信息
begin开始的元素(0=第一个元素,1=第二个元素)0
end最后一个元素(0=第一个元素,1=第二个元素)Last element
step每一次迭代的步长1
var代表当前条目的变量名称

varStatus代表循环状态的变量名称


其中varStatus可以用于排序控制

<c:forEach items="${menus}" var="menu" varStatus="status">
                                <c:choose>
                                    <c:when test="${status.index == 0}">
                                        <li class="active"><a href="javascript:;" data-toggle="slidebar"><i class="fa fa-${menu.icon}"></i> ${menu.resourceName}</a>
                                            
                                            <div class="items hide" data-noinit="true">
                                                <ul class="menu-items" data-faicon="star-o" >
                                                    <c:forEach items="${menu.children}" var="child">
                                                        <li><a href="${ctx}${child.url}" data-options="{id:'${child.tabId}', faicon:'${child.icon}'}">${child.resourceName}</a></li>
                                                    </c:forEach>
                                                </ul>
                                            </div>
                                      </li>
                                    </c:when>
                                    <c:otherwise>
                                         <li><a href="javascript:;" data-toggle="slidebar"><i class="fa fa-${menu.icon}"></i> ${menu.resourceName}</a>
                                            
                                            <div class="items hide" data-noinit="true">
                                                <ul class="menu-items" data-faicon="star-o" >
                                                    <c:forEach items="${menu.children}" var="child">
                                                        <li><a href="${ctx}${child.url}" data-options="{id:'${child.tabId}', faicon:'${child.icon}'}">${child.resourceName}</a></li>
                                                    </c:forEach>
                                                </ul>
                                            </div>
                                      </li>
                                    </c:otherwise>
                                </c:choose>
                            </c:forEach>

2.  格式化标签,JSTL格式化标签用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:

<%@ taglib prefix="fmt" 
           uri="http://java.sun.com/jsp/jstl/fmt" %>

标签
 描述
<fmt:formatNumber>使用指定的格式或精度格式化数字
<fmt:parseNumber>解析一个代表着数字,货币或百分比的字符串
<fmt:formatDate>使用指定的风格或模式格式化日期和时间
<fmt:parseDate>解析一个代表着日期或时间的字符串
<fmt:bundle>绑定资源
<fmt:setLocale>指定地区
<fmt:setBundle>绑定资源
<fmt:timeZone>指定时区
<fmt:setTimeZone>指定时区
<fmt:message>显示资源配置文件信息
<fmt:requestEncoding>设置request的字符编码

3. JSTL函数标签

   JSTL包含一系列标准函数,大部分是通用的字符串处理函数。引用JSTL函数库的语法如下:

 

<%@ taglib prefix="fn" 
           uri="http://java.sun.com/jsp/jstl/functions" %>

 标签说明:

函数

 描述
fn:contains()测试输入的字符串是否包含指定的子串
fn:containsIgnoreCase()测试输入的字符串是否包含指定的子串,大小写不敏感
fn:endsWith()测试输入的字符串是否以指定的后缀结尾
fn:escapeXml()跳过可以作为XML标记的字符
fn:indexOf()返回指定字符串在输入字符串中出现的位置
fn:join()将数组中的元素合成一个字符串然后输出
fn:length()返回字符串长度
fn:replace()将输入字符串中指定的位置替换为指定的字符串然后返回
fn:split()将字符串用指定的分隔符分隔然后组成一个子字符串数组并返回
fn:startsWith()测试输入字符串是否以指定的前缀开始
fn:substring()返回字符串的子集
fn:substringAfter()返回字符串在指定子串之后的子集
fn:substringBefore()返回字符串在指定子串之前的子集
fn:toLowerCase()将字符串中的字符转为小写
fn:toUpperCase()将字符串中的字符转为大写
fn:trim()移除首位的空白符

其中: fn:trim()函数有可以把el表达式中的Long、Integer等类型直接转换为字符串的功能,

  fn:trim(r.id) //这样就可以使用r.id直接转换为字符串类型

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值