JSTL学习

基本标签:

out标签:<c:out value="${表达式}" default="默认值"></c:out>

作用:结合EL表达式将数据响应给浏览器,如果EL表达式没有取到数据则可以使用default属性声明默认值。

<% 
	request.setAttribute("str", "jstl out学习");
%>
<%=request.getAttribute("str") %>----${str}-----
<C:out value="${st}" default="我是out标签"></C:out>

 

set标签:<c:set value="数据" var="键名" scope="作用域名"></c:set>

作用:将数据存储到指定的作用域中,默认是pageContext作用域

注意:scope的值为:page  request  session  application

<C:set value="set标签学习2" var="s2" scope="request"></C:set>
<C:set value="hello pageContext" var="hello" scope="page"></C:set>
<C:set value="hello request" var="hello" scope="request"></C:set>
<C:set value="hello session" var="hello" scope="session"></C:set>
<C:set value="hello application" var="hello" scope="application"></C:set>
${s1}--${requestScope.hello}

 

remove标签:<c:remove var="要删除数据的键名" scope="作用域名"/>

作用:删除作用域中的数据,默认是删除四个作用域中的符合要求的数据。但是可以通过scope属性指明要删除的作用域据。    
  注意:
         使用pageContext.removeAttriute("键名"),    此方法会将四个作用域中的符合要求的数据全部删除
          使用pageContext.removeAttriute(String name,int scope)
                            指明要删除的作用域中的数据 scope的值为 1pageContext,2request ,3 session,4 application
          使用request.removeAttibute("键名")         删除当前作用域符合要求的数据
          使用session.removeAttibute("键名")               删除当前作用域符合要求的数据
          使用application.removeAttibute("键名")        删除当前作用域符合要求的数据

<C:set value="set标签学习2" var="s2" scope="request"></C:set>
<C:set value="hello pageContext" var="hello" scope="page"></C:set>
<C:set value="hello request" var="hello" scope="request"></C:set>
<C:set value="hello session" var="hello" scope="session"></C:set>
<C:set value="hello application" var="hello" scope="application"></C:set>  
<C:remove var="hello" scope="request"/><br/>
<C:remove var="hello" /><br/>
${requsetScope.hello}  

 

逻辑标签:

单分支判断标签:<c:if test="${表达式}">数据</c:if>

作用:可以根据el表达式进行一定程度的单分支逻辑判断。
 注意:
           test属性中书写的是EL表达式,或者说是EL表达式的逻辑表达式。
            该标签只能进行EL表达式相关的逻辑判断。不能进行EL表达式不能获取的数据的逻辑处理

<C:set var="a" value="12"></C:set>
<C:if test="${a>8}">
	<b>今天天气不错</b>
</C:if>

 

多分支判断标签:

            <c:choose>
                        <c:when test="${表达式}"></c:when>
                        <c:when test="${表达式}"></c:when>
                        ..
                        <c:otherwise></c:otherwise>
             </c:choose>
注意:符合条件后只会执行一个分支,其他分支不会执行。

<%--多分支判断标签  C:choose/when--%>
<C:set var="score" value="40"></C:set>
<C:choose>
	<C:when test="${score>=90}">
		<i>奖励10个苹果</i>
	</C:when>
	<C:when test="${score>=80&&score<90}">
		<i>奖励8个苹果</i>
	</C:when>
	<C:when test="${score>=70&&score<80}">
		<i>奖励6个苹果</i>
	</C:when>
	<C:when test="${score>=60&&score<70}">
		<i>奖励5个苹果</i>
	</C:when>
	<C:otherwise>
		<i>捐赠10苹果</i>
	</C:otherwise>
</C:choose>


 循环标签:
                    <c:foreach>
                        循环体
                    </c:foreach>
 属性:
        begin:声明循环的开始位置
        end:声明循环的结束位置
        step:声明循环的步长
         varStatus:声明变量记录循环状态 ,例如变量名:i

                 注意:记录的数据存储到了作用域中可以直接使用El表达式进行获取
                   示例:   ${i.index}  获取当次循环的下标
                                  ${i.count}  获取当次循环的次数
                                  ${i.first}  判断是否是第一次循环
                                  ${i.last}    判断是否是最后一次循环
        items:声明要遍历的数据,可以是集合和数组等
                    注意:要使用EL表达式来获取
       var:声明变量记录每次遍历的结果。可以做循环体中使用使用EL表达式获取遍历出来的数据    

<C:forEach begin="0" end="4" step="1" varStatus="i">
	1111
	<C:if test="${i.count==3}">
		<u>我是第三次循环体</u>
	</C:if>
	--${i.index}--${i.first}--${i.last}--${i.count} <br />
</C:forEach>

 

遍历list集合:

<%
	ArrayList<String> list=new ArrayList<String>();
	list.add("apple");
	list.add("bnana");
	list.add("lemon");
	//将list存储到作用域中
	request.setAttribute("list", list);
%>
<C:forEach varStatus="i" items="${list}" var="s">
	${s}---${i.index}---${i.count} <br />
</C:forEach>

 

遍历map集合:

<%
	HashMap<String,String> map=new HashMap<String,String>();
	map.put("s1", "下棋");
	map.put("s2", "开飞机");
	map.put("s3", "开坦克");
	//将map存储到作用域中
	request.setAttribute("map", map);
%>
<C:forEach items="${map}" var="s">
	${s}--${s.value} <br />
</C:forEach>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值