–JSTL 简介
–JSTL的分类

?基本标签 c:out 的用法
?基本标签 c:set 的用法
?条件判断标签 c:if 的用法
?条件判断标签 c:choose、c:when、c:otherwise 的用法
?迭代循环c:forEach的用法
---------------------------------------------------------------------
–JSTL 简介
? JSTL 的全称是 Java Server Pages Standard Tag Library,即 JSP 标准标签
?主要目的是
–尽量减少在JSP页面中写Java代码
–增强代码的可重用性
–并且提高开发速度
? JSTL的分类
–基本标签
? c:out
? c:set
? c:remove
? c:catch...
–条件判断标签
? c:if
? c:choosec:when
? c:otherwise
–迭代循环标签
? c:forEach
? c:forToken
–URL标签
–XML标签
–SQL标签
? 基本标签 c:out 的用法
–作用

?使用JspWriter输出字符串、变量、JavaBean属性值
–用法
?输出一个字符串
–<c:out value=" this is a string" />
c_out.jsp
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_开发
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_02
?输出一个变量
–<c:out value="${name}" />
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JDBC_03
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_Servlet_04
?输出一个JavaBean的属性
–<c:out value="${user.password}" />
User.java
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_Servlet_05
c_out.jsp
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_Servlet_06
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_开发_07
?使用缺省值
–<c:out value="${name1}" default="amaker" />
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_开发_08
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_开发_09
看一下有值的情况哈~
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_10
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_开发_11
? 基本标签 c:set 的用法
–作用

? 在某个作用域中设置变量或JavaBean的属性值
–用法
? 使用value 设置特定范围内变量的值
–<c:set value="hong zhi" var="firstName" />
c_out.jsp
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_Servlet_12
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_13
? 使用body设置特定范围内变量的值
–<c:set var="lastName">guo</c:set>
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_14
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_开发_15
? 设置对象的属性,使用target、property、value
–<jsp:useBean id="user" class="com.amaker.bean"/>
–<c:set target="${user}" property="firstName" value="hong zhi"/>
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_开发_16
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_Servlet_17
? 指定范围
–<c:set var="appliction_var" value=" amaker " scope="application"/>
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_Servlet_18
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_开发_19
现在访问当前页面都有值,下面我们跳转到另一页面看下效果哈!
c_set.jsp
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSTL_20
test_c_set.jsp
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JDBC_21
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_Servlet_22
我们发现页面跳转后page的值已经失效了哈~
下面如果页面不是跳转而是重新调用的,我们看下效果
c_set.jsp
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_开发_23 
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSTL_24
现在request请求也失效了哈~
下面我们换台电脑再测试一下
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_25
现在只有application有值哈~
? 条件判断标签 c:if 的用法
–作用
?条件判断输出
–例如:根据用户的权限,来显示页面(如:是否有删除权限)
–用法
<c:if test=${age&lt;18}>
你的年龄太小,不能访问该页面!
</c:if>
c_if.jsp
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSTL_26
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_27
下面我们切换成其他用户测试
 JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_28
如果不是michael用户访问的话,Delete按钮就失效了哈~
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_29
? 条件判断标签 c:choose、c:when、c:otherwise 的用法
–作用
? 判断多重条件,这个三个标签必须一起使用
–用法
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_30
c_choose.jsp
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSTL_31
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSTL_32
? 迭代循环c:forEach的用法
–作用
?迭代循环输出集合中的元素。
–用法
?简单迭代
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_Servlet_33
c_forEach.jsp
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSTL_34
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JDBC_35
上面没有使用标准标签所测试的,下面我们使用标准标签来看下哈~
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_36
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JDBC_37 
也可以不用c:out输出哈~直接${}输出
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSTL_38
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_开发_39
?固定次数迭代
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_40
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_41
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSTL_42
?固定次数,指定步长迭代
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JDBC_43
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JSP_44
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_开发_45
? 迭代循环c:forEach的用法
–用法
?迭代状态
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_Servlet_46
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_JDBC_47
测试:
JDBC+Servlet+JSP整合开发之28-JSP_标准标签(JSTL)_Servlet_48
---------------------------------END---------------------------------