JSTL

表达式

1*. c:out 主要用于对特殊字符进行转换. 真正进行输出时, 建议使用 c:out, 而不是使用 EL

book: <c:out value="${requestScope.book }" default="booktitle"></c:out>

 2*. c:set: 可以为域赋属性值。 而对域对象中的 JavaBean 的属性赋值用的并不多.

  其中 value 属性支持 EL 表达式; 还可以为域对象中的 JavaBean 的属性赋值, target, value都支持 EL 表达式

	<c:set var="subject" value="${param.subject }" scope="session"></c:set>
	subject: ${sessionScope.subject }
	<c:set target="${requestScope.cust }" property="id" value="${param.id }"></c:set>
	ID: ${requestScope.cust.id }

 3. c:remove: 移除指定域对象的指定属性值(较少使用, 即便移除也是在 Servlet 中完成)

<c:remove var="date" scope="session"/>

 流程控制

4*. c:if: 在页面上对现实的内容进行过滤, 把结果存储到域对象的属性中. 但不灵活, 会被其他的自定义标签所取代.

	<c:if test="${param.age > 18 }" var="isAdult" scope="request"></c:if>
	isAdult: <c:out value="${requestScope.isAdult }"></c:out>

5. c:choose, c:when, c:otherwise: 作用同上, 但麻烦, 不灵活.

  其中: c:choose 以 c:when, c:otherwise 的父标签出现.c:when, c:otherwise 不能脱离 c:choose 单独使用. c:otherwise 必须在 c:when 之后使用。

6*. c:forEach: 对集合进行遍历的. 常用! 可以对数组, Collection, Map 进行遍历, begin(对于集合 begin 从 0 开始算), end, step

	<!-- 遍历 Collection, 遍历数组同 Collection -->
	<c:forEach items="${requestScope.custs }" var="cust"
		varStatus="status">
		${status.index}, ${status.count}, ${status.first}, ${status.last}: ${cust.id }: ${cust.name }<br>
	</c:forEach>

 7. c:forTokens: 处理字符串, 类似于 String 累的 split() 方法(知道即可)

	<c:set value="a,b,c.d.e.f;g;h;j" var="test" scope="request"></c:set>
	<c:forTokens items="${requestScope.test }" delims="." var="s">
		${s }<br>
	</c:forTokens>

8. c:import: 导入页面到当前页面的. (了解)

9. c:redirect: 当前页面进行重定向的. (使用较少)

10*. c:url 产生一个 url 地址. 可以 Cookie 是否可用来智能进行 URL 重写, 对 GET 请求的参数进行编码。可以把产生的 URL 存储在域对象的属性中.

  还可以使用 c:param 为 URL 添加参数. c:url 会对参数进行自动的转码.  value 中的 / 代表的是当前 WEB 应用的根目录.

	<c:url value="/test.jsp" var="testurl" scope="page">
		<c:param name="name" value="尚硅谷"></c:param>
	</c:url>

 

posted @ 2016-07-06 20:53  岳灵珊  阅读(159)  评论(0编辑  收藏  举报