zoukankan      html  css  js  c++  java
  • JSP标签技术

      JSTL标签库是为了JavaWeb开发人员提供的一套标准通用的标签库,JSTL标签库和EL配合使用取代JSP中大部分的java代码

      在使用JSTL标签库提供的标签之前,必须在JSP中通过taglib指令引入JSTL标签库。

      1.在JSP页面中写入大量的java代码会导致JSP页面中html代码和java代码混杂在一起,会造成页面非常混乱,难以维护

        先导入JSTL的jar包,通过taglib引入JSTL标签库

      

      2.于是在JSP的2.0版本中,sun提出了JSP标签技术,推荐使用标签来道题JSP页面中的java代码,并且推荐,JSP2.0以后不要再JSP页面中出现一行java代码。

      

      3.EL表达式

        EL表达式在JSP中可以非常方便的获取数据,可以代替JSP页面中的JSP表达式(<%=  %>)

        基本结构:${表达式}

        EL只能获取不能设置!!!

        EL只能获取不能遍历!!!

        EL表达式提供了如下功能:

          (1)EL可以获取常量、变量(必须存入域中)、表达式的值

    <%
        String name="aaa";
        pageContext.setAttribute("name",name);
    %>
    
    ${ name }

          (2)EL可以获取域中的数组或集合中的数据

          <c:forEach items="${list}" var="prod">
                <tr>
                    <td><%
                    List<Porduct> list = (List<Porduct>)request.getAttribute("list"); 
                    Porduct po = list.get(0);
                    out.write(String.valueOf(po.getId()));
                    
                    %>
                    <%=po.getId()%>
                    <% out.write("hello"); %>
                    </td>
                    <td>${prod.name }</td>
                    <td>${prod.name }</td>
                    <td>${prod.des }</td>
                    <th>
                        <!-- <span onclick="del()">删除</span>
                        <div id="firstdiv"></div>
                        <span onclick="upd()">修改</span> -->
                        <a id="delProd" href="#">删除</a>|
                        <a id="updProd" href="#">修改</a>
                    </th>
                </tr>
                </c:forEach>

    EL从域中取数据,查找域的顺序为:

    Page > Request > Session > Application

    3.JSTL常用属性

      3.1 <c:set></c:set>   往四大作用域中添加域属性,或者修改四大作用域中已有的属性

      (1)往四大作用域中添加属性

    <c:set var="name" value="张三丰"></c:set>

      (2)修改四大作用域中已有的属性

      如果重复添加相同的属性,值会发生覆盖。相当于修改  

    <c:set var="name" value="张翠山"></c:set>

      (3)修改作用域中Map集合中的属性

      

    <%
        Map map = new HashMap();
      map.put("name","阿凡达");
      map.put("gender","1");
    %>
    <c:set target="${map}" property="name" value="阿凡提"/>

    ${map.name}

      3.2 c_set标签属性总结:

      (1)var  指定存入域中属性的名称

      (2)value  指定存入域中属性的值

      (3)scope  指定将属性保存到哪一个域中

      (4)target  指定修改域中的哪一个集合

      (5)property  指定修改域中集合中哪一个属性

      3.3 <c:if></c:if>  构造if ... else ... 语句

      <c:if test="${3>5}>yes</c:if>
    
      <c:if test="${!(3>5)}>yes</c:if>

      

      3.4 <c:forEach></c:forEach>  对集合或者数组中的元素进行循环遍历或者是执行指定次数的循环

        标签属性总结:

        (1)items:  指定需要遍历的集合或数组

        (2)var:  指定用于接收遍历过程中的元素

        (3)begin  指定循环从哪开始

        (4)end  指定循环从哪结束

        (5)step  指定循环时的步长

        (6)varStatus="status"  返回一个表示循环状态的对象,该对象还具有如下属性:

          a)count:  表示当前遍历的元素是第几个

          b)first  表示当前遍历的元素是否为第一个

          c)last  表示当前遍历的元素是否为最后一个

          d)index  表示当前遍历的元素的索引《从零开始》

    案例演示:

    <!-- 修改map中的数据 -->
    <% Map map = new HashMap(); 
        map.put("name", "laoli");
        map.put("gender", "1");
        request.setAttribute("map", map);
    %>
    ${map.name }
    ${map.gender }
    <br/>
    <c:set target="${map }" property="name" value="laoqi"></c:set>
    <c:set target="${map }" property="gender" value="laopo"></c:set>
    ${map.name }
    ${map.gender }
    <br/>
    
    <!-- if判断标签 -->
    <c:if test="${123>112 }">yes</c:if>
    <c:if test="${!(123>112) }">no</c:if>

     

  • 相关阅读:
    Emoji表情符号录入MySQL数据库报错的解决方案(MySQL utf8与utf8mb4区别)
    信息安全系统设计基础实验二实验报告
    20135328陈都信息安全系统设计基础第十五周学习总结
    20135328陈都信息安全系统设计基础第十四周学习总结
    20135328陈都信息安全系统设计基础第十三周学习总结
    20135328陈都信息安全系统设计基础第十二周学习总结
    20135328陈都信息安全系统设计基础第十一周学习总结
    20135328陈都信息安全系统设计基础第十周学习总结
    信安系统设计基础实验一实验报告
    信息安全系统设计基础第九周学习总结
  • 原文地址:https://www.cnblogs.com/gxlaqj/p/11409441.html
Copyright © 2011-2022 走看看