JavaWeb---JSP标准标签库(JSTL)

1.  为什么需要使用JSTL?

虽然EL表达式可以访问JavaBean的属性,但是并不能实现在JSP中进行逻辑判断,因而要使用JSTL标签

2.  什么是JSTL?

JSTLJSP Standard Tag LibraryJSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apachejakarta小组来维护的。JSTL标签库的出现,不仅简化了JSPWEB应用程序的开发,而且在应用程序服务器之间提供了一致的接口,最大程度地提高了WEB应用在各应用服务器之间的移植。而由JSTL1.0发展而来的EL语言更加简化了JSP页面中对变量和对象的访问操作。

3.  JSTL的优点:

a.   提供一组标准标签

b.   可用于编写各种动态 JSP 页面

c.   JSTL通常会与EL表达式合作实现JSP页面的编码

4.  JSTL标准标签库内的标签:

JSTL标准标签库à核心标签库à{通用标签(set,remove,out),条件标签(if),迭代标签(foreach)}

5.  通用标签:set out remove

a.set:设置指定范围内的变量值

b.out:计算表达式并将结果输出显示

c.remove:删除指定范围内的变量

引入: <%@ tagliburi="http://java.sun.com/jsp/jstl/core" prefix="c"%>

设置变量或属性

   <c:set var="num" value="${100+1 }"scope="session" />

   <c:set var="num1" scope="session">${4+6}</c:set>

   输出变量值:

   <c:out value="${num }" />

   <c:out value="${num1}"></c:out>

   <br>移除变量值:

   <c:remove var="num" />

   <c:remove var="num1"/>

6.  条件标签的使用: if

a)  ifif标签用于判断条件是否成,与Java中的If语句做用用相同

语法:

<c:if test="${num==100}"var="isnum" scope="page">

   <h4>num的值是100</h4>

   </c:if>

   <c:if test="${num!=100}" var="isnum"scope="page">

   <h4>num的值不是100</h4>

</c:if>

7.  使用条件标签if做登陆验证:

 <%--

      StringloginName = (String) session.getAttribute("NAME");

   --%>

   <!--  IP:-->

   <!--  <inputtype="text" value="<%--=ip--%>" readonly="readonly"/>-->

   <c:set var="loginName" value="${sessionScope.NAME}"></c:set>

   <%--

      if(loginName == null) {

   --%>

   <c:if test="${loginName==null}" var="islogin">

   <form action="do_login.jsp" method="post" onsubmit="check()">

      登录名:<input type="text" name="name"id="name">密码:<input

         type="password" name="pwd"id="pwd"><input type="submit"

         value="登陆">

   </form>

   </c:if>

   <%--

      }else if (loginName.equals("admin")) {

   --%>

   <c:if test="${loginName.equals('admin')}">

   <div>

      欢迎您:<c:out value="${loginName}" /><%--=loginName--%>!<ahref="admin.jsp">管理控制台</a><a

         href="loginout.jsp">退出</a>

   </div>

   </c:if>

   <%--

      }else {

   --%>

   <c:if test="${islogin}">

   <div>

      欢迎您:<c:out value="${loginName}" /><%--=loginName--%>!<ahref="loginout.jsp">退出</a>

   </div>

   </c:if>

   <%--

      }

--%>

8.  迭代标签:foreach fortokens

迭代标签用于多次计算标签体

Fortokens标签的属性:

名称

类型

属性描述

items

String

要处理的一系列以特定符号隔开的字符串

delims

String

分隔字符集合

var

Sring

记录当前处理项目的变量

varStatus

String

记录循环状态的变量

begin

int

循环的起始点

end

int

循环的结束位置

step

int

循环步长

 

9.  迭代标签的应用:

forEachfor循环语句的变体,实现集合对象(可以是list、数组等)的处理

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%! String [] numbers = { "1", "2", "3","4" }; %>

<c:set var="sp" value="ed,saf,wfas;sdafasf:2423/2fsaf"/>

    <c:forEach var="n"items="${NUMS}" varStatus="s">

          索引:<c:out value="${s.index}" />

      <c:out value="${n}" />

   遍历次数:<c:out value="${s.count }" />

      <br>   </c:forEach>

FortokensJSTL种的另一个迭代循环标签,它可以用来对字符串进行迭代循环,这个字符串是用符号分开的

  <c:forTokens var="t"items="${sp}" delims=",;:/">

      <c:out value="${t}" />

      <br>

</c:forTokens>

10. 使用foreach改写新闻首页:

 <ul class="classlist">

                <%

                   List<News>news = nc.selectNews();

                            request.setAttribute("news", news);

                %>

                <c:forEach var="ns" items="${news}"varStatus="s">

                   <c:if test="${s.count%5==0}">

                      <li class='space'></li>

                   </c:if>

                   <li><a href="new_read.jsp?nid=${ns.nid}"><c:out

                            value="${ns.ntitle}" /></a><span><c:out

                            value="${ns.ncreatedate}" /></span>

                   </li>

                </c:forEach>

             </ul>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值