jstl部分标签整理

来源:互联网 发布:淘宝违规考试答案2013 编辑:程序博客网 时间:2024/06/05 04:25

EL表达式
用于jsp页面存取数据,简化表达。
结构
${expression}
可通过 . 和 []两个符号取值。
原理是依次从 Page, Request, Session, Application域中取值。
四个域在表达式中对应的名称为PageScope, RequestScope, SessionScope, Application
可通过<%@ page isELIgnored=”true”%>来设置页面是否使用EL表达式。
JSTL(JSP Standard Tag Libarary)
是一个JSP标签的集合,可以用于简化页面上的java代码书写,让JSP页面更具可读性。
其中按照功能将标签划分为以下5类:

 1. 核心标签         2. 格式化标签  3. SQL标签  4. XML标签        5. JSTL函数

JSTL标签的使用需要导入 jstl.jar 和 standard.jar 文件

使用示例
核心标签,引用核心标签库的语法,在JSP页面的头部加入
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

c:out: 输出文本内容

    <c:out value="value" escapeXml="false">defaultValue</c:out>
    显示: value    value: 输出的文本内容    escapeXml: 是否忽略xml字符    defaultValue: value==null时,显示该字符串

set:设置变量的值

    <c:set var="varname" value="varvalue" scope="session"></c:set>    <c:out value="${varname}" scapeXml="false">defaultValue</c:out>
    显示:varvalue    var:变量的名称    value:变量的值    scope:变量的作用域

c:if:条件判断

    <c:if test="${1<2}" var="result" scope="session">        <c:out value="${result}"escapeXml="false"/>    </c:if>
    显示:true    test:条件的结果    var:存储结果的变量    scope:变量的作用域

choose, when, otherwise:多条件选择

    <c:choose>        <c:when test="{1<2}">            <c:out value="when"></c:out>        </c:when>        <c:otherwise>            <c:out value="otherwise"></c:out>        </c:otherwise>    </c:choose>
    显示:otherwise

c:foreach:用于循环迭代

    <c:forEach begin="1" end="4" step="1" var="i">        <c:out value="${i}"></c:out>    </c:forEach>
    显示:1234
    <c:forEach items="${iList}" var="i">        <c:out value="${i}"></c:out>    </c:forEach>
    iList:{0, 1, 2}    显示:0 1 2    items:被迭代的对象    var:  迭代中的单项    begin:迭代开始的数    end:  迭代结束的数    step: 迭代的跨度

c:forTokens :通过指定分隔符将字符串分割后迭代

    <c:forTokens items="1,2,3,4"  delims="," var="i">        <c:out value="${i}"></c:out>    </c:forTokens>` 
delims:指定的分隔符

c:import 相当于,用于引入外部资源

    <c:import url="" var="urltext" charEncoding="utf-8">
url:引进资源的地址var:存储资源文本的变量

c:param:重定向时携带的参数

<c:param name="param" value="value"/>

c:redirect:重定向

    <c:redirect url="redirect.html"/>

JSTL函数
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
fn:contains() 一个字符串中是否包含指定字符串

    <c:if test="${fn:contains('123', '12')}">        <c:out value="contain"></c:out>    </c:if>
显示:contain

fn:containsIgnoreCase(str1, str2):忽略大小写的情况下确定str1是否包含str2

fn:endWith(str1, str2):str1是否以str2结尾
fn:indexOf(str1, str2):返回str2在str1中出现的位置

    <c:set var="result" value="${fn:indexOf('01234', '2')}"/>    <c:out value="${result}"></c:out>
    显示:2

fn:split(str1, delim):str1以delim分隔符分隔后以数组返回
fn:join(arr, delim) : arr以delim连接返回字符串

    <c:set var="str1" value="1,2,3,4,5,6,7"/>    <c:set var="arr" value="${fn:split(str1, ',')}"/>    <c:set var="str2" value="${fn:join(arr, '-')}"/>    <c:out value="${str2}"></c:out>
    显示:1-2-3-4-5-6-7

fn:length(list):返回list长度

fn:replace(str, oldstr, newstr):将str中oldstr的newstr部分替换

    <c:set var="str1" value="1,2,3,4,5,6,7"/>    <c:set var="str2" value="${fn:replace(str1, '4', 'newstr')}"/>    <c:out value="${str2}"></c:out>
    显示:1,2,3,newstr,5,6,7

fn:startsWith(str, pref):返回str是否以pref开始

    <c:set var="str" value="${fn:startsWith('123', '12')}"/>    <c:out value="${str}"></c:out>
    显示:true

fn:substring(str, begin, end):返回str中begin到end的子集

    <c:set var="str" value="${fn:substring('1234567', 2, 6)}"/>    <c:out value="${str}"></c:out>
    显示:3456 

fn:substringAfter(str, sub):返回str中以sub开始之后的字符串,包含sub
fn:substringBefore(str, sub):返回str中以sub开始之前的字符串,不包含sub

    <c:set var="str1" value="${fn:substringBefore('1234567', '4')}"/>    <c:set var="str2" value="${fn:substringAfter('1234567', '4')}"/>    <c:out value="${str1}"></c:out>    <c:out value="${str2}"></c:out>
    显示:123 567

fn:toLowerCase(str):将str转小写
fn:toUpperCase(str):将str转大写

fn:trim():移除首位的空白

0 0
原创粉丝点击