JSTL常用标签之大聚集---上
JSTL已经被继承到了javaEE的环境中,目前的版本是1.2;javaEE Libraries里的jstl-1.2.jar就是这个标签库的jar包!
核心标签库是JSTL是最重要的部分,也是在开发中最常使用到的部分,在核心标签库中主要完成的是流程控制,迭代输出等操作,主要的标签名称如下:
No功能分类名称描述1<c:out>输出属性内容2<c:set>设置属性内容3<c:remove>删除指定属性4<c:catch>异常处理5流程控制标签<c:if>条件判断6<c:choose>多条件判断,可以设置<c:when>和<c:otherwise>7迭代标签<c:forEach>输出数组,集合8<c:forTokens>字符串拆分及输出操作9包含标签<c:import>将一个指定的路径包含到当前页进行显示10生成URL标签<c:url>根据路径和参数生成一个新的URL11客户端跳转<c:redirect>客户端跳转<c:out>标签:
? 用于输出内容,其语法如下:
No属性名称EL支持描述1value支持设置要显示的内容2escapeXml支持如果要显示的value内容为null,则显示default定义的内容3default支持是否转换字符串,例如将">"转换为">",默认为true测试例子:
?<c:set>标签:
?? 主要用于将属性保存在4种属性范围内,其语法如下:
?
?本标签的属性如下:
No
属性名称
支持EL
描述
1
value
支持
设置属性内容,如果为null则表示删除属性
2
var
不支持设置属性名称
3
scope
不支持设置属性的保存范围,默认保存在page范围中
4
target
支持存储的目标属性测试例子:
?定义JavaBean:Info:
?刷新页面的时候,看下控制台;标签是通过反射从javaBean取值;所有在控制台可以看见输出!
<c:remove />标签:
? 其标签在程序中主要作用是删除指定范围中的属性,功能与removeAttribute()方法类似;
?本标签的属性:
No属性名称支持EL描述1var不支持要删除属性的名称,必须指定此名称2scope不支持删除属性的保存范围,默认保存在page范围中测试页面:jstltest.jsp:
?<c:catch/>标签:
?? 用来处理程序中产生的异常,并进行相关的异常处理,语法:
?其属性:
No属性名称EL描述1test支持用于判断条件,如果条件为true,则执行标签体的内容2var不支持保存判断结果3scope不支持指定判断结果的保存范围,默认是page测试页面:
?<c:choose/>,<c:when/>,<c:otherwise/>标签:
<c:if>:标签可以提供的功能只是针对一个条件的判断,如果现在要同时判断多个条件,可以使用<c:choose>,但<c:choose>标签只能作为<c:when>和<c:otherwise>的父标签出现;
语法:
<%pageContext.setAttribute("num",10); %> <c:choose> <c:when test="${num == 10}"> <h3>num属性的内容是10!!!</h3> </c:when> <c:when test="${num == 20}"> <h3>num的属性是20</h3> </c:when> <c:otherwise> <h3>没有一个条件满足的</h3> </c:otherwise> </c:choose>??