JSP整理(三) 常用JSLT

一. JSP 标准标签库(JSTL)

根据JSTL标签所提供的功能,可以将其分为5个类别。

核心标签

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

 

格式化标签

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

 

SQL 标签

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

 

XML 标签

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

 

JSTL 函数

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

 

 

二. JSTL 库安装

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

 

三.核心标签

标签 描述
<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:if> 标签

属性 描述 是否必要 默认值
test 条件
var 用于存储条件结果的变量
scope var属性的作用域 page

 

 

<c:set var="salary" scope="session" value="${2000*2}"/>
<c:if test="${salary > 2000}">
   <p>My salary is: <c:out value="${salary}"/><p>
</c:if>
<c:catch var ="catchException">
   <% int x = 5/0;%>
</c:catch>
<c:if test = "${catchException != null}">
   <p>The exception is : ${catchException} ${catchException.message}<br />
</c:if>
 

 

<c:forEach>, <c:forTokens> 标签

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

 

<c:forTokens>标签与<c:forEach>标签有相似的属性,不过<c:forTokens>还有另一个分隔符属性:delims  

 

 

    <c:forEach items="${data}" var="item">
        ${item.id} : ${item.loginName}</br>
    </c:forEach>
    <c:forTokens items="Zara,nuha,roshy" delims="," var="name">
        <c:out value="${name}" />
    </c:forTokens>
 

 

<c:choose>, <c:when>, <c:otherwise> 标签

<c:choose>标签没有属性。

<c:when>标签只有一个属性,条件:test

<c:otherwise>标签没有属性。 

 

    <c:choose>
        <c:when test="${salary <= 0}">
       Salary is very low to survive.
    </c:when>
        <c:when test="${salary > 1000}">
        Salary is very good.
    </c:when>
        <c:otherwise>
        No comment sir...
    </c:otherwise>
    </c:choose>

 

四. 格式化标签

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

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

 

 

<fmt:formatDate> 和 <fmt:parseDate>标签

    <fmt:formatDate pattern="yyyy-MM-dd" value="${now}" />
    <fmt:parseDate value="${now}" var="parsedEmpDate" pattern="dd-MM-yyyy" />
    <c:out value="${parsedEmpDate}" />

 

五. JSTL函数

函数 描述
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:contains()函数

    <c:set var="theString" value="I am a test String" />
    <c:if test="${fn:contains(theString, 'test')}">
        <p>Found test string&nbsp&nbsp&nbsp&nbsp${pageContext.session } <p>
    </c:if>

 

 

 

你可能感兴趣的:(jsp,jstl)