Servlet和Jsp页面数据交互三:常用的JSTL标签
在上一篇博客中使用了JSTL标签遍历集合并展示数据,而常用的JSTL标签还有很多,本期博客就先给大家介绍常用的JSTL标签。
在上一篇博客中使用了JSTL标签遍历集合并展示数据,而常用的JSTL标签还有很多,本期博客就先给大家介绍常用的JSTL标签。
根据JSTL标签提供的功能,可以将它分为5个类别:核心标签、格式化标签、SQL标签、XML标签和JSTL函数。使用最多的是肯定是核心标签,另外函数标签使用也相对较多,但是在使用它们之前需要在jsp文件中添加两行代码:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>,其功能是引入核心标签库和函数标签库。标签使用方式下面就为大家一一道来。
1 <c:forEach>标签:该标签是迭代标签,可以遍历多种集合。
forEach标签的items属性值表示需要被迭代集合;var属性值指示当前被访问到的集合中的元素;varStatus属性值包含了当前访问对象的重要属性。该标签还有几个其它属性,一般使用默认值即可,若要查看详细描述请点击这里。forEach标签使用实例如下:
<table>
<c:forEach items="${list }" var="p" varStatus="status">
<tr>
<td><input type="text" id="id1" name="name_${status.index}" value="${p.name }" /></td>
<td><input type="text" name="sex_${status.index}" value="${p.sex }" /></td>
<td><input type="text" name="addr_${status.index}" value="${p.addr }" /></td>
<td><input type="text" name="age_${status.index}" value="${p.age }" /></td>
</tr>
</c:forEach>
</table>
代码中的p.name表示取当前访问对象的name属性值。
NO.2 <c:if>标签:表达式的值如果为真则执行其主体部分的代码。
if标签的test属性是必须属性,它表示if执行的条件;var属性用来存储条件结果;scope属性表示var属性的作用域,默认值为page。使用实例如下:
<c:if test="${sex eq 'M' }">
<p>性别:男</p>
</c:if>
示例中的sex的值来自后台,eq运算符表示相等比较,当sex表示的值和”M”相等则比较结果为真,否则为假。
NO.3 <c:choose>标签:该标签功能类和switch语句的功能一样。<c:choose>标签配合<c:when>和<c:otherwise>标签使用。当choose标签内部的某一个when标签的test属性值为真,则执行该when标签内部代码,否则继续判断,如果没有一个when标签内部代码执行,则最后执行otherwise标签内部的代码,otherwise标签是可选部分。使用示例如下:
<c:choose>
<c:when test="${sex == 'M'}">
<p>性别:男</p>
</c:when>
<c:when test="${sex == 'F'}">
<p>性别:女</p>
</c:when>
<c:otherwise>
<p>性别:其他</p>
</c:otherwise>
</c:choose>
4 <c:out> 标签:用来做页面显示的标签,和<% = %>作用相似,但是<c:out>标签可以直接通过"."操作符来访问属性,而且它可以自动忽略XML标记字符。属性value表示要输出显示的值。标签使用示例如下:
<c:set target="People" var="people" property="name" scope="session" value="马脑壳"/>
<c:out value="${people.name }"/>
示例中使用配合使用了<c:set>标签。
5 <c:set> 标签:<c:set>标签可以计算表达式的值,然后使用计算结果来设置 JavaBean 对象或 java.util.Map 对象的值。属性value表示要存储的值;target表示要修改的属性属于哪个对象的;property属性表示需要修改的属性;var属性表示存储信息的变量;scope属性支出了var属性的作用域,默认为page。指的注意的是如果指定了target属性,那么property属性也需要被指定。使用示例如下:
<c:set target="People" var="people" property="name" scope="session" value="马脑壳"/>
6 fn:length()函数:fn:length()函数返回字符串长度或集合中元素的数量。使用示例如下:<c:set var="str" value="This is second String." />
<p>Length of str: ${fn:length(str)}</p>
除以上标签外,还有很多JSTL标签,例如函数标签库里的fn:indexOf()、fn:split()等,不过这些函数的语法和javaAPI里面的使用方式一样。JSTL标签功能强大,想要熟练掌握还需要勤加练习才是。
这样创新的模式,值得你的选择!
蜗牛学院,只为成就更好的你!
还在等什么,赶快关注蜗牛学院官方微信,加入到蜗牛学院的大家庭中来吧!