十二、JSTL标签库

2021-02-20 01:18

阅读:730

标签:测试数据   move   get   jar   创建   ash   shm   efi   getattr   

  1 @ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2 @taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  3 --
  4     JSTL学习:
  5         作用:在jsp页面使用其可以非常方便的进行数据的处理。较与使用java代码块方法,更加的简单,代码更加的简洁易读。
  6         使用:
  7             核心标签库
  8         流程:
  9             导入jar包
 10             引入标签库
 11                 %@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 12         内容:
 13             基本标签:
 14                 out标签:c:out value="${表达式}" default="默认值">c:out>
 15                     作用:结合EL表达式将数据响应给浏览器,如果EL表达式没有取到数据则可以使用default属性声明默认值。
 16                 set标签: c:set value="数据" var="键名" scope="作用域名">c:set>
 17                     作用:将数据存储到指定的作用域中,默认是pageContext作用域
 18                     注意:
 19                         scope的值为:page  request  session  application
 20                 remove标签:c:remove var="要删除数据的键名" scope="作用域名"/>
 21                     作用:删除作用域中的数据,默认是删除四个作用域中的符合要求的数据。
 22                         但是可以通过scope属性指明要删除的作用域数据。        
 23                     注意:
 24                         使用pageContext.removeAttriute("键名"),    此方法会将四个作用域中的符合要求的数据全部删除
 25                         使用pageContext.removeAttriute(String name,int scope)
 26                             指明要删除的作用域中的数据 scope的值为 1pageContext,2request ,3 session,4 application
 27                         使用request.removeAttibute("键名")         删除当前作用域符合要求的数据
 28                         使用session.removeAttibute("键名")               删除当前作用域符合要求的数据
 29                         使用application.removeAttibute("键名")        删除当前作用域符合要求的数据
 30             逻辑标签:
 31                 单分支判断标签:c:if test="${表达式}">数据c:if>
 32                     作用:可以根据el表达式进行一定程度的单分支逻辑判断。
 33                     注意:
 34                         test属性中书写的是EL表达式,或者说是EL表达式的逻辑表达式。
 35                         该标签只能进行EL表达式相关的逻辑判断。不能进行EL表达式不能获取的数据的逻辑处理
 36                 多分支判断标签:
 37                     c:choose>
 38                         c:when test="${表达式}">c:when>
 39                         c:when test="${表达式}">c:when>
 40                         ..
 41                         c:otherwise>c:otherwise>
 42                     c:choose>
 43                     注意:
 44                         符合条件后只会执行一个分支,其他分支不会执行。
 45                 循环标签:
 46                     c:foreach>
 47                         循环体
 48                     c:foreach>
 49                     属性:
 50                         begin:声明循环的开始位置
 51                         end:声明循环的结束位置
 52                         step:声明循环的步长
 53                         varStatus:声明变量记录循环状态 ,例如变量名:i
 54                             注意:记录的数据存储到了作用域中可以直接使用El表达式进行获取
 55                             示例:   ${i.index}  获取当次循环的下标
 56                                   ${i.count}  获取当次循环的次数
 57                                   ${i.first}  判断是否是第一次循环
 58                                   ${i.last}         判断是否是最后一次循环
 59                         items:声明要遍历的数据,可以是集合和数组等
 60                             注意:要使用EL表达式来获取
 61                         var:声明变量记录每次遍历的结果。可以做循环体中使用使用EL表达式获取遍历出来的数据    
 62  --%>
 63  h3>JSTL学习:h3>
 64  hr />
 65  
 66      request.setAttribute("str","jstl学习");
 67  %>
 68  
 69  =request.getAttribute("str") %>--${str}--c:out value="${str}" default="我是out标签">c:out>
 70  br />
 71  
 72  
 73      request.setAttribute("s1","set标签学习");
 74     
 75  %>
 76  c:set value="set标签学习2" var="s2" scope="request">c:set>
 77  c:set value="hello pageContext" var="hello" scope="page">c:set>
 78  c:set value="hello request" var="hello" scope="request">c:set>
 79  c:set value="hello session" var="hello" scope="session">c:set>
 80  c:set value="hello application" var="hello" scope="application">c:set>
 81  ${s1}--${requestScope.s2}
 82  br />
 83  
 84 -- %
 85     pageContext.removeAttribute("hello",4);
 86      //request.removeAttribute("hello");
 87      //session.removeAttribute("hello");
 88  %>  --%>
 89 c:remove var="hello" scope="request"/>
 90 ${hello}
 91  br />
 92 
 93 c:set var="a" value="12">c:set>
 94 
 95     int b=4;
 96     int a=Integer.parseInt((String)pageContext.getAttribute("a"));
 97     if(a>8){
 98 %>
 99     b>今天天气真好,适合学习1b>
100 } %>
101 c:if test="${a>8}">
102     b>今天天气真好,适合学习2b>
103 c:if>
104  br />
105 
106 c:set var="score" value="40">c:set>
107 c:choose>
108     c:when test="${score>=90}">
109         i>奖励苹果电脑一台i>
110     c:when>
111     c:when test="${score=80}">
112         i>奖励苹果手机一部i>
113     c:when>
114     c:when test="${score>=70&&score>
115         i>无奖励无惩罚i>
116     c:when>
117     c:otherwise>
118         i>男女混合双打i>
119     c:otherwise>
120 c:choose>
121  br />
122 
123 c:forEach begin="0" end="5" step="1" varStatus="i">
124     c:if test="${i.count==3}">
125         u>我是第三次循环u>
126     c:if>
127     11111--${i.index}--${i.count}--${i.first}--${i.last}br />
128 c:forEach>
129 
130 
131 
132     //创建测试数据list
133     ArrayListString> list=new ArrayListString>();
134     list.add("苹果");
135     list.add("榴莲");
136     list.add("荔枝");
137     //将list存储到作用域中
138     request.setAttribute("list",list);
139     
140 %>
141 c:forEach items="${list}" var="s" varStatus="i">
142     ${s}--${i.index}--${i.count}br />
143 c:forEach>
144 
145 
146     //声明Map集合测试数据
147     HashMapString,String> hs=new HashMapString ,String>();
148     hs.put("s1","唱歌");
149     hs.put("s2", "跳舞");
150     hs.put("s3", "敲代码");
151     //将数据存储到作用域中
152     request.setAttribute("hs", hs);
153 %>
154 c:forEach items="${hs}" var="s">
155     ${s.key}--${s.value}br />
156 c:forEach>

 

十二、JSTL标签库

标签:测试数据   move   get   jar   创建   ash   shm   efi   getattr   

原文地址:https://www.cnblogs.com/qiaoxin11/p/12925702.html


评论


亲,登录后才可以留言!