zoukankan      html  css  js  c++  java
  • jsp: jstl标签库

    jstl标签库,通过maven配置:

     <!-- jstl标签的支持 -->
        <dependency>
    	    <groupId>javax.servlet</groupId>
    	    <artifactId>jstl</artifactId>
    	    <version>1.2</version>
    	</dependency>
    

      

    常用标签:out、set、remove、catch、if、choose、when 和 URL

    表达式操作标签包括 out、set、remove 和 catch。

    1.out

    out 标签的使用格式如下:
    <c:out value=”object” [escapeXml=”true|false”] />
    这个标签还可以有一个体,如下:
    <c:out value=”object” [escapeXml=”true|false”] >default value</c:out>
    
    

      

    这表示当 value 属性指定的 object 值为 null 时,就会显示体中指定的值(也就是 default value),体
    中也可以是 JSP 代码。
    <c:out>中的各个属性:
    value:可以指定一个字符串作为输出内容,也可以为 EL 表达式,例如${3+5}。
    escapeXml:类型为 boolean,确定<、>、&、’、”等这些字符在结构的字符串中是否被转换成字
    符串实体代码,默认的是 true。
    default value:可以是字符串,还是一个表达式(EL 表达式或者<%=表达式%>的 JSP 表达式)。
    如果属性指定的表达式或者对象值为 null 时,那么将输出这个 default value 部分的值。

    例子:

    <h4><c:out value="第一个 JSTL 的 JSP 程序,使用 JSTL 的标签迭代输出信息"/></h4>
    
    <%
    String items[] = new String[3];
    items[0] = "jstl标签库";
    items[1] = "国际标签库";
    items[2] = "sql标签库";
    //把数组变量保存在request对象中
    request.setAttribute("items", items);
    
    %>
    <table border="1">
    	<c:forEach var="item" items="${items}">
    	<tr>
    		<td><c:out value="${item}"/></td>
    	</tr>
    	</c:forEach>
    </table>
    
    <c:out value="${3+4}"/><br>
    <c:out value="<p>有特色字符串</p>"/><br>
    <c:out value="<p>有特色字符串</p>" escapeXml="false"/><br>
    

      

    2.set

    set 标签是使用来在某个范围(request、session 或者 application)内设值,或者设置某个对象的属性
    值。
    set 标签的使用格式如下:
    (1)使用 value 属性在一个特定的范围内指定某个变量的值,其使用格式如下:
    <c:set var=”varName” value=”varValue” [scope=”page|request|session|application”] />
    (2)当使用 value 属性在一个特定范围内指定某个变量的值时,也可以包括一个体,它的作用和
    out 标签体的作用一样,即 value 指定的值为 null 时,默认使用体中指定的值,使用格式如下:
    <c:set var=”varName” value=” Value” [scope=”page|request|session|application”] >
    default value
    </c:set>
    (3)设置某一个特定对象属性的使用格式如下:
    <c:set property=”propertyName” target=”target” value=”value” />
    (4)在设置某个特定对象的一个属性时,也可以有一个体,也指定默认值,使用格式如下:
    <c:set property=”propertyName” target=”target” value=”value” >
    default value
    </c:set>
    该标签中的各属性说明如下:
    value:该属性指定变量或者对象中某个属性的值,并且可以是一个表达式。
    var:变量名称,value 属性指定的值就保存在这个变量中
    scope:设定变量的有效范围,如果不设置,则默认为 page。
    target:设置属性的一个对象,它必须是 JavaBean 或者 java.util.Map 对象。
    property:设置对象中的一个属性。

    <c:set var="num1" value="${3+5}" scope="request"/>
    <c:set var="num2" scope="session">
    ${3+6}
    </c:set>
    <c:set var="num3" scope="session">
    10
    </c:set>
    
    <br>
    <!-- 通过out标签输出变量 -->
    <c:out value="${num1}"/>
    <c:out value="${num2}"/>
    <c:out value="${num3}"/>
    

      

    3.remove

    remove 标签一般和 set 标签配套使用,两者是相对应的,remove 标签用于删除某个变量或者属性。
    使用格式如下:

    <c:remove var=”varName” [scope=”page|request|session|application”] />

    remove 标签中使用的各属性说明如下:
    scope:设定这个需要删除的变量所在范围。
     var:需要删除的变量或者对象属性的名称。
    如果没有设置scope的属性,即采用默认值,那么就相当于调用PageContext.removeAttribute(varName)方法;如果指定了这个变量所在的范围,那么系统会调用 PageContext.removeAttribute(varName,scope)方法

    <c:set var="num" scope="page" value="${3+5}" />
    <c:set var="num" scope="request">
    ${3+6}
    </c:set>
    <c:set var="num" scope="session">
    <c:out value="10"/>
    </c:set>
    
    <!-- 变量显示 -->
    <table border="1" width="50%">
    <tr>
    	<td>pageScope.num</td>
    	<td><c:out value="${pageScope.num}" default="null"/></td>
    </tr>
    <tr>
    	<td>requestScope.num</td>
    	<td><c:out value="${requestScope.num}" default="null"/></td>
    </tr>
    <tr>
    	<td>sessionScope.num</td>
    	<td><c:out value="${sessionScope.num}" default="null"/></td>
    </tr>
    </table>
    <br>
    <!-- 使用remove删除page标签后的值 -->
    <c:out value='<c:remove var="num" scope="page"/>之后的变量值:'/>
    <c:remove var="num" scope="page"/>
    <table border="1" width="50%">
    <tr>
    	<td>pageScope.num</td>
    	<td><c:out value="${pageScope.num}" default="null"/></td>
    </tr>
    <tr>
    	<td>requestScope.num</td>
    	<td><c:out value="${requestScope.num}" default="null"/></td>
    </tr>
    <tr>
    	<td>sessionScope.num</td>
    	<td><c:out value="${sessionScope.num}" default="null"/>
    </tr>
    </table>
    
    <!-- 使用remove删除num标签 ,没有指定scope默认删除所有的num-->
    <c:out value='<c:remove var="num"/>remove删除num后的值:'/>
    <c:remove var="num"/>
    <table border="1" width="50%">
    <tr>
    	<td>pageScope.num</td>
    	<td><c:out value="${pageScope.num}" default="null"/></td>
    </tr>
    <tr>
    	<td>requestScope.num</td>
    	<td><c:out value="${requestScope.num}" default="null"/></td>
    </tr>
    <tr>
    	<td>sessionScope.num</td>
    	<td><c:out value="${sessionScope.num}" default="null"/></td>
    </tr>
    </table>
    

      

     4.catch

    catch 标签的功能和 Java 程序中 try…catch{}语句功能很类似,它用于捕获嵌入到它中间语句抛出的
    异常。这个标签的使用格式如下:
    <c:catch var=”varName” >
    相关操作语句
    </c:catch>

     1 <c:catch var="errors">
     2 <%
     3 
     4     String num = request.getParameter("num");
     5     int i = Integer.parseInt(num);
     6     out.print("num is " + i);
     7 
     8 %>
     9 </c:catch>
    10 <c:out value="${errors}"/>
  • 相关阅读:
    DEV控件GridControl常用属性设置(转)
    【649】shapely strtree STRtree 构建 RTree
    【648】计算直线间的夹角
    【646】灰度图array转为RGB三通道array
    【645】OpenCV 相关函数说明
    【644】二值图去掉面积小的部分 cv2.threshold
    Makefile中include、-include、sinclude
    openssh交叉编译
    四元数插值
    循环求余法
  • 原文地址:https://www.cnblogs.com/achengmu/p/8284619.html
Copyright © 2011-2022 走看看