jsp--5.jstl
来源:互联网 发布:淘宝联盟高佣与低佣金 编辑:程序博客网 时间:2024/06/10 20:50
1 JSTL标签库简介
几乎可以使用标签完全代替Java代码(顺序语句、分支语句、循环语句)
核心标签库:
<%@ 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="xml"uri="http://java.sun.com/jsp/jstl/xml"%>
函数标签库:
<%@ taglib prefix="fn"uri="http://java.sun.com/jsp/jstl/functions"%>
2 核心标签库
2.1 表达式标签
2.1.1 <c:out>输出标签
该标签类似于JSP的表达式<%=表达式%>,或者EL表达式${expression}。
<c:out>标签有两种语法格式,一种没有标签体,另一种有标签体,这两种语言的输出结果完全相同。<c:out>标签的具体语法格式如下:
语法1——没有标签体:
<c:out value="expression" [escapeXml="true|false"] [default="defaultValue"]/>
语法2——有标签体:
<c:out value="expression"[escapeXml="true|false"]>
defalultValue
</c:out>
2.1.2 <c:set>变量设置标签
<c:set>标签用于在指定范围(page、request、session或application)中定义保存某个值的变量,或为指定的对象设置属性值。
<:set>标签有4种语法格式。
语法1:在scope指定的范围内将变量值存储到变量中。
<c:set var="name"value="value" [scope="范围"]/>
语法2:在scope指定的范围内将标签体存储到变量中。
<c:set var="name"[scope="page|request|session|application"]>
标签体
</c:set>
语法3:将变量值存储在target属性指定的目标对象的propName属性中
<c:set value="value"target="object" property="propName"/>
语法4:将标签体存储到target属性指定的目标对象的propName属性中
<c:set target="object"property="propName">
标签体
</c:set>
2.1.3 <c:remove>变量移除标签
<c:remove var="name" [scope="范围"]/>
参数说明:
var属性:用于指定要移除的变量名。
scope属性:用于指定变量的有效范围,可选值有page、request、session、application。默认值是page。如果在该标签中没有指定变量的有效范围,那么将分别在page、request、session和application的范围内查找要移除的变量并移除。例如,在一个页面中,存在不同范围的两个同名变量,当不指定范围时移除该变量,这两个范围内的变量都将被移除。为此,在以移除变量时,最好指定变量的有效范围。
2.1.4 <c:catch>捕获异常标签
<c:catch>标签用于捕获程序中出现的异常,如果需要它还可以将异常信息保存在指定的变量中。该标签与Java语言中的try...catch语句类似。<c:catch>标签的语法格式如下:
<c:catch [var="exception"]>
…//可能存在异常的代码
</c:catch>
参数说明:
var属性:可选属性,用于指定存储异常信息的变量。如果不需要保存异常信息,可以省略该属性。
2.2 URL相关标签
2.2.1 <c:import>导入标签
jsp:include>只能导入站内资源,而<c:import>标签不仅可以导入站内资源,也可以导入其他网站的资源
语法1:
<c:import url="url"[context="context"] [var="name"] [scope="范围"][charEncoding="encoding"]>
[标签体]
</c:import>
语法2:
<c:import url="url"varReader="name" [context="context"] [charEncoding="encoding"]>
[标签体]
</c:import>
2.2.2 <c:url>动态生成URL标签
response.encodeURL()方法的调用一个替代方法,session
<c:url>标签的语法格式如下。
语法1:
<c:url value="url"[var="name"] [scope="范围"] [context="context"]/>
该语法将输出产生的URL字符串信息,如果指定了var和scope属性,相应的URL信息就不在输出,而是存储在变量中以备后用。
语法2:
<c:url value="url"var="name"] [scope="范围"][context="context"]>
<c:param/>
… <!--可以有多个<c:param>标签-->
</c:url>
2.2.3 <c:redirect>重定向标签
<c:redirect>标签可以将客户端发出的request请求重定向到其他URL服务端,由其他程序处理客户的请求。而在这期间可以对request请求中的属性进行修改或添加,然后把所有属性传递到目标路径。该标签的语法格式如下。
语法1:该语法格式没有标签体,并且不添加传递到目标路径的参数信息。
<c:redirect url="url"[context="/context"]/>
语法2:该语法格式将客户请求重定向到目标路径,并且在标签体中使用<c:param>标签传递其他参数信息。
<c:redirect url="url"[context="/context"]>
<c:param/>
…<!--可以有多个<c:param>标签-->
</c:redirect>
2.2.4 <c:param>传递参数标签
<c:param>标签只用于为其他标签提供参数信息,组合可以实现动态定制参数,从而使标签可以完成更复杂的程序应用。
参数说明如下:
name属性:用于指定参数名,可以引用EL。如果参数名为null或是空,该标签将不起任何作用。
value属性:用于指定参数值,可以引用EL。如果参数值为null,该作为空值处理。
2.3 流程控制标签
2.3.1 <c:if>条件判断标签
<cif>条件判断标签没有else标签。
<c:if>标签有两种语法格式。
语法1:该语法格式会判断条件表达式,并将条件的判断结果保存在var属性指定的变量中,而这个变量存在于scope属性所指定的范围中。
<c:if test="condition" var="name" [scope=page|request|session|application]/>
语法2:该语法格式不但可以将test属性的判断结果保存在指定范围的变量中,还可以根据条件的判断结果去执行标签体。标签体可以是JSP页面能够使用的任何元素,例如,HTML标记、Java代码或者嵌入其他JSP标签。
<c:if test="condition" var="name" [scope="范围"]>
标签体
</c:if>
2.3.2 <c:choose>条件选择标签
<c:choose>标签可以根据不同的条件去完成指定的业务逻辑,如果没有符合的条件会执行默认条件的业务逻辑。<c:choose>标签只能作为<c:when>和<c:otherwise>标签的父标签,而要实现条件选择逻辑可以在<c:choose>标签中嵌套<c:when>和<c:otherwise>标签来完成。
<c:choose>标签的语法格式如下:
<c:choose>
标签体<!--由<c:when>标签和<c:otherwise>标签组成-->
</c:choose>
2.3.3 <c:when>条件测试标签
<c:when>条件测试标签是<c:choose>标签的子标签,它根据不同的条件去执行相应的业务逻辑,可以存在多个<c:when>标签来处理不同条件的业务逻辑。<c:when>标签的语法格式如下:
<c:when test="condition">
标签体
</c:when>
2.3.4 <c:otherwise>其他条件标签
<c:otherwise>标签也是<c:choose>标签的子标签,用于定义<c:choose>标签中的默认条件处理逻辑,如果没有任何一个结果满足<c:when>标签指定的条件,将会执行这个标签体中定义的逻辑代码。在<c:choose>标签范围内只能存在一个该标签的定义。
<c:otherwise>标签的语法格式如下:
<c:otherwise>
标签体
</c:otherwise>
<c:choose> <c:when test="${items.sex == 0}">男 </c:when> <c:when test="${items.sex == 1}">女 </c:when> <c:otherwise> </c:otherwise></c:choose>
2.4 循环标签
2.4.1 <c:forEach>循环标签
<c:forEach>标签的语法格式如下。
语法1:集合成员迭代
<c:forEach items="data"[var="name"] [begin="start"] [end="finish"][step="step"] [varStatus="statusName"]>
标签体
</c:forEach>
在该语法中,items属性是必选属性,通常使用EL指定,其他属性均为可选属性。
语法2:数字索引迭代
<c:forEach begin="start"end="finish" [var="name"] [varStatus="statusName"][step="step"]>
标签体
</c:forEach>
2.4.2 <c:forTokens>迭代标签
<c:forTokens>迭代标签可以用指定的分隔符将一个字符串分割开,根据分割的数量确定循环的次数。<c:forTokens>标签的语法格式如下:
<c:forTokens items="String"delims="char" [var="name"] [begin="start"][end="end"] [step="len"][varStatus="statusName"]>
标签体
</c:forTokens>
3 格式标签库
3.1 数字
3.1 日期
<fmt:formatDate value="${items.gmt_create }" pattern="yyyy-MM-dd HH:mm:ss" />
数据库存储为字符串
<fmt:parseDate value="${user.gmtCreate}" pattern="yyyy-MM-dd" var="masterDate"/><fmt:formatDate value="${masterDate}" pattern="yyyy-MM-dd"/>
- jsp--5.jstl
- jsp JSTL
- Jsp---JSTL
- JSP-JSTL
- JSP-JSTL
- Jsp jstl
- Jsp---JSTL
- Base-Jsp-3-JSTL
- JSTL简化JSP编码
- JSTL简化JSP编码
- jstl简化jsp编码
- JSP标签(JSTL)
- jsp---JSTL标签详解
- jsp+jstl实现分页
- JSP EL、JSTL笔记
- JSP之JSTL functions
- jsp、jstl笔记
- jsp-jstl-学习
- 大学生程序设计邀请赛(华东师范大学)-F-贪心
- bzoj 4827 [Hnoi2017]礼物
- MySQL配置binlog
- java——打印流PrintStream和PrintWriter
- const的意义
- jsp--5.jstl
- lca的ST算法(在线)
- 礼物
- JavaScript的继承方式——原型链
- while(1)与while(表达式)
- JLINK V9 修复小记
- win7 64位 C51 HEX自动转成BIN文件
- 电容容值的大小关系
- 简单模式匹配C语言版