16
07

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. 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>

 

  1. 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>标签。

 

  1. 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="马脑壳"/>

 

  1. 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标签功能强大,想要熟练掌握还需要勤加练习才是。

 


这样创新的模式,值得你的选择!

蜗牛学院,只为成就更好的你!

还在等什么,赶快关注蜗牛学院官方微信,加入到蜗牛学院的大家庭中来吧!

20181009_153045_341.jpg



版权所有,转载本站文章请注明出处:蜗牛学苑, https://www.woniuxy.cn/article/29