1.JSTL简介
JSP标准标记库(JSP Standard Tag Library) 是一个实现Web应用程序中常用功能的定制标记库集,
功能包括输出、程序流程控制、数据格式化、XML操作以及数据库访问等。总之,它实现了适量服务器端Java应用程序
常用的基本功能。通过为典型表现层任务(如数据格式化和迭代或条件内容)提供标准实现,
JSTL使得JSP开发者可以专注于特定于应用程序的开发需求,而不是为这些通用操作多次开发。
这里使用的版本为JSTL1.2,对应JAVAEE5.0规范。
2.配置
在MyEclipse中默认提供有JSTL的jar包,而Eclipse中则需要
手动添加至WEB-INF –> lib目录下。
下载地址:http://vdisk.weibo.com/s/daYMMYPGBjTiU
3.core标签库
core标签库实现了核心功能,变量管理、迭代以及条件判断等等。
URI:http://java.sun.com/jsp/jstl/core 标准前缀: c,URI可以在jstl - 1.2.jar –> META-INF –>c.tld中找到。
引入:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
常用标签:
set:JSP的变量都是定义在四大作用域中的,这个set标签
也是这么回事的,语法:
<c:set var="username" value="张三" scope="page"></c:set>
scope默认是page。或者:
<c:set var="num" value="${1+1}" scope="page"></c:set>
标签的属性value一般都支持el表达式计算
if:
if标签用于逻辑判断,用法:
<c:set var="sal" value="12000"></c:set>
<c:if test="${pageScope.sal >= 10000}">
理想薪资
</c:if>
坑爹的是没有else标签,要实现else的效果可以用choose。
choose:
这玩意就相当于switch语句,组成部分是
choose –> when –> otherwise
语法:
<c:choose>
<c:when test="${pageScope.sal <= 10000}">
理想薪资
</c:when>
<c:when test="${pageScope.sal < 10000}">
低薪
</c:when>
<c:otherwise>
高薪
</c:otherwise>
</c:choose>
otherwise 等价于 default
循环:
JSTL循环有两种 for 和 forEach,但标签都是c:forEach
a) for循环:
<c:forEach var="i" begin="1" end="10" step="1">
${pageScope.i}<br />
</c:forEach>
var:声明循环变量,begin:起始位置,end:边界,step:步进值
循环变量是放在pageScope里的。
b) forEach循环:
<%
String [] strs = new String[]{"吃饭" , "睡觉"};
pageContext.setAttribute("strs", strs);
List<String> list = new ArrayList<String>();
list.add("吹水");
list.add("打边炉");
list.add("吹牛逼");
pageContext.setAttribute("hoblist", list);
%>
<c:forEach var="hobbys" items="${pageScope.strs}">
${pageScope.hobbys}
</c:forEach>
import:
动态包含,和JSP:include是一样的,这里就不贴代码了。
c:out:
用于输出内容,这个标签能够对特殊符号进行
转译输出。这个标签有个escapeXml属性,默认值是true,
表示对html进行转译输出,无风险,而false则表示不转译,有风险。
<c:out value="${pageScope.list}"></c:out>
c:catch:
异常捕获,用途就是包裹住有可能抛异常的代码,
还可以通过var属性获取到这个异常信息:
<c:catch var="myex">
<%
System.out.println(1/0);
%>
</c:catch>
${pageScope.myex}
还有个好处就是catch住异常之后不会页面能够照常解析。
:
用于页面的重定向。格式举例:
<c:redirect url="/MyHtml.html" />