JSTL标签库
准备:
使用前需要导入jstl的jar,jsp页面需要引入使用taglib指令导入所需的标签库,一般结合EL表达式使用
如下导入核心标签库:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %
分类:
最常使用的是core核心标签库,fmt格式化标签库
常用标签:
<c:out>标签用来显示一个表达式的结果,与<%=%>作用相似,区别就<c:out>标签可直接通过"."来访问属性
<c:out value="${out}" default="1"/>
<c:set>通常用来设置表达式的值
<c:set var="rootId" value="${rootDto.menuID}" />
<c:if>用来判断,表达式的结果为true,进入if标签内, 可以使用empty,not empty等
<c:if test="${empty roleList}"> <script> alert("对不起,您没有本系统的操作权限!"); window.top.location = "../logout.screen"; </script> </c:if> <c:if test="${not empty roleList && empty rootMenu}"> <c:out value="${a}"/> </c:if>
<c:choose> 相当于if…else if ..else 的语法
<c:choose> <c:when test="${imageInfo.documentType eq 'P2P'}"> <a href="javascript:showP2pImage('<c:out value="${imageInfo.url}"/>')"> </a> </c:when> <c:when test="${imageInfo.documentType eq 'camara'}"> <a href="javascript:showCamarPhoto('<c:out value="${imageInfo.url}"/>')"> </a> </c:when> <c:otherwise> <a href="javascript:showImage('<c:out value="${imageInfo.documentNo}"/>'</a> </c:otherwise> </c:choose>
<c:forEach>循环遍历标签,可用来遍历list,map,数组等
<c:forEach begin="0" end="${rowsCount}" var="in"> <c:out value=${in}/> </c:forEach> <c:forEach var="modMasInfoDTO" items="${modMasInfoDTO}"> <c:out value= ${modMasInfoDTO.documentNo}/> </c:forEach>拓展:
forEach标签还有一个属性:varStatus,这个属性用来指定接收“循环状态”的变量名,例如:<forEachvarStatus=”vs”…/>,这时就可以使用vs这个变量来获取循环的状态了。
· count:int类型,当前以遍历元素的个数;
· index:int类型,当前元素的下标;
· first:boolean类型,是否为第一个元素;
· last:boolean类型,是否为最后一个元素;
· current:Object类型,表示当前项目
<c:forEach var="item" items="${ns }" varStatus="vs"> <c:if test="${vs.first }">第一行:</c:if> <c:if test="${vs.last }">最后一行:</c:if> <c:out value="第${vs.count }行: "/> <c:out value="[${vs.index }]: "/> <c:out value="name: ${vs.current }"/><br/> </c:forEach>
<c:url> 用于动态生成一个 String 类型的URL
<script type="text/javascript" src="<c:url value="/script/common.js"/>"></script>
<c:redirect> 该标签用来实现请求的重定向,如出现异常或者判断条件满足跳转到另外的页面
<c:redirect url="http://127.0.0.1:8080/login.jsp"> <c:param name="uname">lihui</c:param> <c:param name="password">11111</c:param> </c:redirect>
<c:import> 把其他静态或动态文件包含到 JSP 页面。与<jsp:include>的区别是后者只能包含同一个web应用中的文件,前者可以包含其他web应用中的文件,甚至是网络上的资源
<c:import url="/cfs/common/baseSelect.jsp" charEncoding="GBK"> <c:param name="tableName" value="l_sales_channel_mas" /> <c:param name="selectedId" value="${RESULT.loanMas.salesChannel}" /> </c:import>
<c:catch> 用来处理 JSP 页面中产生的异常,并存储异常信息到变量中
<c:catch var="msg"> <c:redirect url="www.baidu.com"</c:redirect> </c:catch>
fmt标签库是用来格式化输出的,通常需要格式化的有时间和数字
<fmt:formatNumber>格式化时间
<td class="td_3" align="center"><fmt:formatDate value="${logItem.bookingDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<fmt:formatNumber>格式化数字
<td align="right" class="td_3"><fmt:formatNumber value="${loan.applAmt}" pattern="#,###.##"/></td>