【Web】【JSP】JSTL使用

27 篇文章 0 订阅
4 篇文章 0 订阅

JSTL  

        JSP  Standard Tag Library ,JSP标准标签库,即在JSP页中使用的标签库。

        之前学习了如何将html转换成jsp开发,使html更灵活多变。当然,在JSP中有便也有不变指出。JSP可以直接引入类使用,缺点也是也为如果想使用对象数据,就必须先引入类。甚至在再使用过程中,需要写入特殊标签。这样带了很多不便。所以,有了JSTL标签库的发展。通过JSTL,就如同在html中写标签一样便利,还能简化代码量。

JSTL使用

EL表达式

       可以用来接收request中的属性值。用法:${变量名}。例如

        request.setAttribute("hello", "HelloWorld");

       则JSP页面接收时:

          hello(el表达式,语法:$和{}):${hello }<br>
      就能输出:

hello(el表达式,语法:$和{}):HelloWorld

        EL不仅仅是可以传字符串,也可以数组,实体(实体属性必须存在GET属性),map,等等,request传递的参数,同时也支持运算符的运算。


核心库

      需要引入taglib,并且需要jstl.jar 和standard.jar放入到项目中。核心库代码就类似html标签:

     <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

        

         c:out    输出变量值.可以直接使用赋值,也可以接受传递的参数,接收时可以使用el表达式。

<c:out value="123"></c:out>
<c:out value="hello"></c:out>
<c:out value="${hello} "></c:out>
        c:set     定义变量即其值

<c:set value="root" var="userid"/>

        c:remove移除变量

<c:remove var="userid"/>

条件控制

   c:if test 判断语句

          <c:if test="${v1 lt v2}">
		v1小于v2<br>
	  </c:if>

    
   c:choose不能单独使用,必须存在一个when(c:when;c:otherwise)

                   <c:choose>
			<c:when test="${v1 gt v2}">
				v1大于v2<br>
			</c:when>
			<c:otherwise>
				v1小于v2<br>
			</c:otherwise>
		</c:choose>


循环控制标签

       c:forEach  循环语句

                          <c:forEach items="${users}" var="user" varStatus="vs">
					<c:choose>
						<c:when test="${vs.count mod 2 == 0}">
							<tr bgcolor="red">
						</c:when>
						<c:otherwise>
							<tr>
						</c:otherwise>
					</c:choose>
								<td>${user.username }</td>
								<td>${user.age }</td>
								<td>${user.group.name }</td>
							</tr>
				</c:forEach>

varstatus:循环中的计数器

Begin:开始位置
end:结束位置
step:步长
				<c:forEach items="${users}" var="user" begin="2" end="8" step="2">
					<tr>
						<td>${user.username }</td>
						<td>${user.age }</td>
						<td>${user.group.name }</td>
					</tr>
				</c:forEach>

        c:forTokens  分割字符串输出
delims:分隔符
var:有效值
	<c:forTokens items="${strTokens}" delims="#" var="v">
		${v }<br>
	</c:forTokens>

格式化库

       比如日期、数字的格式化分别是formatDate  、formatNumber。使用法“fmt:格式化类”做标签,如

             <fmt:formatDate value="${today}"/><!--日期格式化-->
             <fmt:formatNumber value="${n}"/><!--数字格式化-->
        并且,通过各自的type分别控制日期或者数字显示的形式。

函数库

       可以调用函数中的某个方法,但是需要引入tld描述文件,如果是自定义类,则就必须要创建tld文件了。

       用法:前缀+冒号+函数名;(前缀即引入的函数taglib名称prefix值,函数名即你需要使用的方法,并且该方法应该是函数库中定义过的)。

自定义函数

方法:必须是静态全局
提供tld描述文件,并将tld放到WEB-INFWEB-INF的任意目录中
采用taglib进行引入

EL表达式中采用:前缀+冒号+函数名的方法进行调用



更多用法建议参考帮助文档,稍后会提供文件。。。





评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值