zoukankan      html  css  js  c++  java
  • JSP JSTL

    JSTL是Sun给JSP制定的一套标准标签库,JS代表JSP,TL即Tag Library。

    JSTL是一套很古老的标签库了,很多东西都不再适用,这里只介绍几个常用的标签。

    使用JSTL需下载添加以下4个jar包

    <c:out>标签   输出一段文本或表达式的值

     <c:out value="hello" />
      
      <c:out value='<%=request.getAttribute("name") %>' default="默认值" />
      <c:out value="${requestScope.name}" default="默认值" />
      
      <c:out value="">默认值</c:out>

    value指定要输出的内容,可以使用输出表达式、EL表达式。

    JSTL中的标签相当于html元素,属性值不能直接写表达式,比如value="requestScope.name"这是获取不到值的,会直接作为纯文本输出。

    可以指定默认值,当域中没有指定的变量时,会输出默认值。默认值可以写成属性形式,也可以写在元素体中。

    可以指定escapeXml属性,是否避免特殊字符,默认值是true,会自动对特殊字符进行转义。

    <c:out value="<h2>hello</h2>" />
      <c:out value="<h2>hello</h2>" escapeXml="false"/>

    第一句代码不会解析<h2>标签,原样输出<h2>hello</h2>。第二句输出hello,会显示出<h2>标签的效果。

    为true或缺省时,会作为纯文本输出,不会解析里面的value中的特殊字符。

    为fasle时,会解析value中的特殊字符,显示出效果。

    <c:if>标签   条件判断,相当于if

     <%
        request.setAttribute("score",80);
      %>
    
      <c:if test='${requestScope.score>=60}'>及格</c:if>

    test设置条件(表达式),常用EL表达式,当表达式的值为true时,输出元素体的内容,否则输出空串。

    可以直接在表达式中指出变量所在的域,也可以这样:

    <c:if test='${score>=60}' var="score" scope="request">及格</c:if>

    用var指定表达式中的变量,scope指定变量所在的域。缺省scope时,默认为page。

    <c:choose>标签   多个条件判断,相当于if-else,if-elseif-else

    <%
        request.setAttribute("score",80);
      %>
    
      <c:choose>
        <c:when test="${requestScope.score>=80}"></c:when>
        <c:when test="${requestScope.score>=60}">及格</c:when>
        <c:otherwise>不及格</c:otherwise>
      </c:choose>

    test设置条件,常用EL表达式,表达式的值为true时,显示|输出标签体的内容。

    <c:forEach>标签   遍历集合、数组

    <%
        String[] arr={"张三","李四","王五"};
      %>
    
      <c:forEach var="name" items="<%=arr %>">
        <p>${pageScope.name}</p>
      </c:forEach>

    var指定临时变量,代表一项,items指定集合、数组,常用输出表达式、EL表达式来指定,不能直接指定,比如items="arr"这是不行的。

    此外可用begin、end、step属性限制范围。

    元素体即循环体,常用EL表达式,临时变量是在page域中的,可缺省pageScope,不能直接写临时变量,比如<p>name</p>这是不行的。

    可配合html标签使用。

    <c:redirect>标签   重定向

      <c:redirect url="/login.jsp" />

    马上重定向到url指定的页面,相当于 response.sendRedirect("/login.jsp"); 

    <c:set>标签   在某个域中放入|设置一个参数

    <c:set var="name" value="chy" scope="request" />
    
    <%=request.getAttribute("name") %>

    相当于 request.setAttribute("name","chy"); 。

  • 相关阅读:
    由 Rest参数 和 Spread扩展运算符想到的...
    输出数组重复项
    echarts 踩坑记
    es6 Promise.all() 和 Promise.race() 区别
    关于Promise.all
    移动端弹出层平滑滚动和fix定位的冲突
    ES6 数组和字符串
    IE9以下 placeholder兼容
    jQuery设置聚焦并使光标位置在文字最后
    处理GitHub不允许上传大于100M文件问题
  • 原文地址:https://www.cnblogs.com/chy18883701161/p/11448071.html
Copyright © 2011-2022 走看看