superzhouych 发表于 2013-2-6 09:53:44

SCWCD之路——标准标签库开发

 
介绍
 
        JSTL(JSP Standard Tag Library,JSP标准标签库),是一个开放源代码的JSP标签库。在JSTL中封装了许多JSP开发中的常用功能,其目的是使得JSP代码中没有scriptlets。
        考试中对该部分的考试比较多,但是都不难,主要是考查用法,只要把常见的几个标签的用法记住了,基本上就没问题了。
 
 
常用标签
 
        1)<c:out>:该标签可以把计算的结果输出给JSP Writer对象,可以包含body,但是body的内容不会发送给客户端,具体形式为:
             <c:out value="" default="" escapeXml="" />
             其中escapeXml表示是否支持字符转换,默认为true;value则是必须的,表示输出的值;default表示value为null时默认的输出值,如:
<c:out value="Hello world" />        2)<c:set>:该标签用于在某个范围(page/request/session/application)中设置某个值,或者设置某个对象的属性,具体的形式有:
             a)<c:set value="value" var="varName" scope="" />
             b)<c:set var="varName" scope="">body content</c:set>
             c)<c:set value="value" property="propertyName" target="target" />
             d)<c:set property="propertyName" target="target" >body content</set>
             其中前两个是设置某个值,而后两个是设置某个对象的属性值,如:
<c:set value="zhouych" var="username" scope="page" /><c:out value="${username}" /><!-- 设置对象的属性值 --><jsp:useBean id="user" class="bean.User" scope="page" /><c:set target="${user}" property="userName" value="zhouych" /><c:out value="${user.userName}" />        3)<c:remove>:该标签用于删除某个变量或者属性。
        4)<c:catch>:该标签可以获取嵌套在其中的标签所抛出的异常。
 
 
条件标签
 
        1)<c:if>:该标签用于条件判断,如果其test属性为true,则计算它的body,其形式为:
             <c:if test="" var="" scope="">body content</c:if>
             属性test是必须的,如:
<c:if test="${10 < 20}" >10 小于 20</c:if>        2)<c:choose>:该标签用于条件选择,一般结合<c:when>和<c:otherwise>一起使用,其形式为:
             <c:choose>body content</c:choose>
             注意其body只能是空格、<c:when>标签或<c:otherwise>标签。
        3)<c:when>:该标签表示一个条件分支,必须以<c:choose>作为父标签,而且必须出现在<c:otherwise>之前。
        4)<c:otherwise>:该标签代表了<c:choose>最后的选择,必须以<c:choose>作为父标签,如:
<c:choose>    <c:when test="${10 < 20}" >10 小于 20</c:when>    <c:otherwise>10 大于 20</c:otherwise></c:choose> 
 
迭代标签
 
        1)<c:forEach>:该标签可以在一个包括一系列对象的Collection中迭代计算其标签体。其形式为:
             <c:forEach var="" items="" begin="" end="" step="">body content</c:forEach>
             items指将要迭代的items的集合,迭代次数也根据这个设定,另外也可以使用属性begin和end来指定迭代次数,如:
<c:forEach var="users" items="${ysers}">    <tr>      <td><c:out value="${users.username}" /></td>      <td><c:out value="${users.password}" /></td>    </tr></c:forEach>         2)<c:forTokens>:该标签专门用来处理TokenString的迭代,可以指定一个或多个分割符(delimiters)。其形式为:
            <c:forTokens items="" delims="">body content</c:forTokens>
            虽然<c:forEach>也能处理TokenString,但是<c:forTokens>更加强大,如:
<c:forTokens url="token" items="green|red|blue|white" delims="|">    <c:out value="${token}" /></c:forTokens>  
 
URL标签
 
        1)<c:import>:该标签导入一个基于URL的资源,考查得比较多,其形式为:
             <c:import url="" />
        2)<c:redirect>:该标签可以把用户的请求重定向到另一个资源。
        3)<c:url>:该标签用来构造URL,主要用来重写URL,其形式为:
             <c:url value="" var="" context="" scope="" />
             使用得比较多的是value属性,如:
<a href="<c:url value="header.jsp" />">头文件</a>        4)<c:param>:该标签用来在上述几个标签中添加请求的参数。
 

标准标签库开发
 
        标准标签库开发的原理其实跟自定义标签开发一样,只不过不用自己再去编写标签的实现类和标签描述性文件,只需要在项目中引入jstl.jar库文件和standard.jar库文件即可(见附件),在项目中的WEB-INF/lib文件夹下导入这两个库文件,然后编写JSP页面如下
<%@page contentType="text/html" pageEncoding="gb2312"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html>    <head>      <title>JSP Page</title>    </head>    <body>      <c:out value="hello world" />    </body></html>        在浏览器里该页面将输出hello world。
页: [1]
查看完整版本: SCWCD之路——标准标签库开发