JSTL标签
一、什么是JSTL标签:
随着J2EE瘦客户机技术JavaServer Pages(JSP)在过去几年中的流行,开发人员已经创建了许多自定义的JSP标记库。虽然很多标记库是为实现不同目标的而编写的,但它们往往也对迭代、条件及其它通用操作都提供了类似的解决方案。
为了减少对解决类似通用问题的独立标记库的需求,在Java Community Process(JSR 52)的赞助下创建了JSTL(JavaServer Pages Standard Tag Library,JSP)标准标记库,为解决这些通用功能提供一个单一的标准解决方案
Java Server Pages 标准标签库 (JSTL) 提供了一组标准标签,可用于 JSP 页面中完成大量的常用功能,帮助开发者建立各种动态JSP页面,可以设置作用域变量、完成条件判断、格式化,甚至访问数据库以及操作XML等处理。
二、使用方式:
第一步:引入jar包
第二步:在jsp页面中引入标签库
三、核心标签:
-
通用标签
set
Var:保存的信息的名称
Value:保存的信息
Scope:保存信息的范围
Target:设置javabean对象的属性
Property:**设置的javabean**对象的属性的属性名称
场景1:<c:set var="userName" value="admin" scope="request"></c:set>>场景2:<c:set target="${user}" property="userName" value="admin1"></c:set>
-
out:
value:输出的信息 。注意:如果属性值写成字符串,将直接输出字符串,写成el表达式,则输出EL表达式的返回值
Default:设置默认值
escapeXml:true(会忽略特殊符号,如<,会把它当普通的文本信息输出)
false(不会忽略特殊符号,会解析特殊符号,如<,会显示为<
场景:
<c:out value="${userPwd}" default="nothing"></c:out>
-
remove:
var:移除的信息的名称,
scope:范围
场景:
<c:remove var="userName" />
-
catch:捕获异常
场景:
<c:catch var="myException"><% int i=0; int j=10/i; %> </c:catch><c:out value="${myException}"></c:out>
-
条件(重点)
-
单分支
<c:if test=*"*${条件表达式}*"*> hello </c:if>
-
多分支 :
<c:choose> <c:when test=*"*${条件表达式}*"*> </c:when> <c:otherwise> </c:otherwise> </c:choose>
注意:条件必须写在el表达式中
-
-
迭代(重点)
-
foreach
属性
-
begin:用来设定开始条件,默认值为0
-
end:用来设定结束条件
-
step:用来设定步长,默认为1
-
var:代表当前项目的变量名
-
varStatus:显示循环状态的变量
循环状态属性
-
Index:下标位置
-
Count:循环次数
-
first:当前遍历到的对象是否为第一个,返回true或者false
-
last:当前遍历到的对象是否为最后,返回true或者false
-
-
items:设定进行循环的项目.需要写到el表达式中
-
-
应用场景1
<c:forEach items="${requestScope.userList}" var="u" varStatus="status"> <c:if test="${u.user_name=='admin1'}"> ${u}=====${u.user_name}====${u.user_pwd}=====${status.index}====${status.count}===${status.first}===${status.last}<br/> </c:if> </c:forEach>
-
- 应用场景2:控制循环次数```jsp<c:forEach begin="1" end="10" var="i">${i}<br/></c:forEach>