[读书笔记]JSP_Servlet学习笔记-JSTL

准备工作

https://jstl.dev.java.net/下载JSTL实现,如:jstl-impl-1.2.jar,必须放在Web应用程序的WEB-INF/lib文件夹中。

核心标签库

要使用jstl标签库,必须在JSP网页上使用taglib指示元素定义前置名称与uri参考。例如,要使用核心标签库,可以如下定义:

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


流程控制标签

1.if:条件判断if,不支持else

<c:if test="${}">

</c:if>

2.若要用else,可用choose ,when, otherwise.当when的测试为true,则不理会otherwise,之后的when也不再测试

<c:choose>

    <c:when test="${xxx}">xxxxx</c:when>

   <c:when test="${xxx}">xxxxx</c:when>

   ... ...

   <c:otherwise>xxx</c:otherwise>

</c:choose>

3.循环forEach

<c:forEach var="item" items="${list.items}">

...

</c:forEach>

<c:forEach>标签的items属性可以是数组、collection、Iterator、Enumeration、Map与String,每次会依序从items指定的对象中取出一个元素,并指定给var属性设置的变量,可以用var变量来取得该元素。如果items指定的是Map,则设置给var的对象是Map.Entry,通过${item.key},${item.value}去的键值。

如果是字符串,则必须是个以逗号区隔的值,<c:forEach>会自动以逗号来切割字符串,每个切割出来的字符串指定给var。

错误处理标签

1.如果要在发生异常的网页直接捕捉异常对象,可以使用<c:catch>将可能产生异常的网页段落包起来。
<c:catch var="error">
 ....
</c:catch>
<c:if test="${error != null}">
...
</c:if>

网页导入

1,转译时直接将另一JSP网页合并至目前网页进行转译,如:
<%@include file="/WEB-INF/jspf/header.jspf"%>

2.通过<jsp:include>标签,可在运行时按条件,动态决定是否包括另一个网页,该网页执行完毕后,再回到目前网页。在包括灵异网页时可以带有参数。如:
<jsp:include page="add.jsp">
    <jsp:param name="a" value="1">
    <jsp:param name="b" value="2">
</jsp:include>
3.还可以使用<jsp:import>,其用法和include相似,除了可以导入目前web应用程序中的网页之外,开可以导入非目前Web应用程序中的网页。

重定向

<c:redirect url="xxx.jsp">
...
</c:redirect>

属性设置

<c:set>

输出/打印

<c:out>
<c:out>会自动将角括号、单引号、双引号等字符用替代字符取代。

I18N兼容性标签库

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

信息标签

<fmt:bundle basename="xxx">

       <fmt:message key="xxx">

</fmt:bundle>

日期格式

<fmt:formatDate value="$now" pattern="dd.MM.yy">
<fmt:parseDate value="xxx" />


数字格式

<fmt:formatNumber value="xxx" pattern="#,#00.0#" />
<fmt:parseNumber value="xxx" />

XML标签库

xpath路径





解析标签

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

要使用xml标签库处理xml文件,首先必须先解析xml文件.
<c:import var="xml" url="xxx.xml" charEncoding="UTF-8" />
<x:parse var="bookmarks" doc="${xml}" />

也可以在<x:parse>的body放置xml进行解析,例如:
<x:parse var="xxx">
   ....(xml片段)
</x:parse>

流程处理标签

<x:if>在select属性指定选择的元素存在时执行。
<x:if select="xxx">
</x:if>
其他choose,when.otherwise用法与核心标签库用法类似。

循环标签
<x:forEach var="xxx" select="xxx">
</x:forEach>

函数标签库

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

fn:startWith()
fn:length()
fn:replace()















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值