JSTL常用标签库

概念

	Java Server Pages (JSP) 标准标记库 (JSTL)的版本的发布对于
    JSP/servlet开发者来说是一个重大的进展。有了一个表达语言(EL)
    和一组四种强大的、易于学习的标准标记库,JSTL极有可能不久后成为实
    现动态的、基于Java的站点的主要方法。 
    
    1996年对JSP servlet的介绍使得Java成为动态网页开发的合理的选择。
    随后出现的Java服务器页(JSP)是走向快速的、可维护的Java网页实现
    过程的合理进化的一步,紧接着就出现了JSP标记的支持。但是2002中
    期的JSTL(JSP标准标记库)的发布才是进一步加速和简化开发过程最大
    的一步。 
   
    JSTL是Java中的一个定制标记库集。JSP标准标签库(JSTL)是一个JSP
    标签集合,它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务,
    比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它
    还提供了一个框架来使用集成JSTL的自定义标签。

作用

   1)实现了JSP页面的代码复用。基于标签库原理,重复率较高的代码块支持复用,
     提高效率。

   2)书写JSP页面时可读性更强。长得像XML,方便前端查看和参与开发。

   3)在应用程序服务器之间提供了一致的接口,最大程度地提高了WEB应用在各应用
     服务器之间的移植。

   4)简化了JSP和WEB应用程序的开发。

标签使用

c:out
输出标签
//1.常量输出
<c:out value = "123"></c:out>
<c:out value = "abc"></c:out>
<c:out value = "true"></c:out>

//2.变量输出
//定义变量
//pageContext:是在整个Web应用上都是有效的,
//可以理解为所有的网页,因为这个对象是常常用来共享资源的,
//也就是用户1提交了一个资源,放到了pageContext作用域中,其它用户也可以看到这个资源。
//setAttribute:添加指定的属性,并为其赋指定的值。
<%
pageContext.setAttribute("j",2);
%>
//定义好变量后 开始输出
j=<c:out value="${j}"></c:out>

//3.转义输出
<c:out value = "<a href = '跳转目的地路径'>跳转</a>"></c:out>

//4.输出默认值
<%
pageContext.setAtribute("a",4);
%>
//如果"${a}"不存在 输出 default的值 也就是 a=3(正常的话 a=4)
a = <c:out value="${a}" default="3"></c:out>

c:set
赋值标签
//将 名字(var)为: JSTL标签之一 值为: c:set 的数据 存到 作用域page 中
<c:set var = "name" value = "c:set" scope = "page"></c:set>
//取值
//通过名字获取它的值
name=${pageScope.name}

//2.向map中添加,修改键值对

<%
Map<String,String> map = new HashMap<String,String>();
map.put("husband","丈夫");
map.put("wife","妻子");
//存到作用域中
pageContext.setattribute("map",map);
%>
//修改 map中的值
<c:set property = "brother" value = "哥哥" target = "${map}"></c:set>
brother=${map["brother"]}
<c:set property = "sister" value = "妹妹" target = "${map}"></c:set>
sister=${map["sister"]}


c:remove
删除标签
//先赋值在删除
//单个删
<c:set var = "name" value = "c:out" scope = "page"></c:set>
<c:set var = "name" value = "c:set" scope = "request"></c:set>
<c:remove var = "name" scope = "page"/>
name=${name}
//全删
<c:set var = "name" value = "c:out" scope = "page"></c:set>
<c:set var = "name" value = "c:set" scope = "request"></c:set>
<c:remove var = "name"></c:remove>
name = ${name}
c:forEach
两种for循环
  //简介
	< c:forEach
	
  	items="要被循环的信息" 
  	begin="开始的元素"
  	end="最后一个元素"
  	step="每一次迭代的步长"
  	var="代表当前条目的变量名称"
  	varStatus="代表循环状态的变量名称"
 	
 	>
 	//增强for循环
 	//先定义输出内容
 	<% 
     List<String> list = new ArrayList<String>();
     //添加数据
     list.add("J");
     list.add("S");
     list.add("T");
     list.add("L");
    %>
    //接收要输出的数据对象 
    //var:当前输出内容所存在的地方
 	<c:forEach items="${list}" var="str">
 	//页面输出:接受页面输出内容
 	list=${str}<br>
 	</c:forEach>
	
	//普通for循环
	<c:forEach begin="0" end="4", step="1" varStatus="vs"> HELLO JSTL <br> index=${vs.index} count=${vs.count} first=$(vs.first)
	</c:forEach>

   //小程序测验
   //打印10到100之间所有的偶数,把下坐标是3的倍数改成红色
   
   //从 10 开始输出到 100,之间间隔为2(原本是11 12 13 ---》现在是10 12 14  ) 
   //输出的数存到 var 定义的 num
   //varStatus是循环中的数
   <c:forEach begin="10" end="100" step="2" var="num" varStatus="vs2">
  
   //将循环中的数进行判断(vs2.count 就是它的坐标(10 12 14) 其中14的坐标就是3,也就是3的1倍数)
   //如果它是3的倍数就变红
    <c:if test="${vs2.count%3==0}" var = 
   "flag">
  
   //定义颜色
   <font color = "red">${num}</font>
   
   </c:if>
   
   //上面判断的时候定义 flag 是符合要求的数
   //所以这里直接 定义 !flag 就可以了
   <c:if test="${! flag}">
   
   //定义颜色
   <font color="blue">${num}</font>
   
   </c:if>
   
   </c:forEach>
   
c:forTokens
标签切割
 <c:forTokens 
 items="需要切割的数据"
 delims="以什么切割"
 var="输出内容"
 >
 页面显示
 </c:forTokens>
 
 //实例
 <c:forTokens items = "1,2,3,4" delims="," var="sc">
 sc=${sc}
 </c:forTokens>
c:url
在需要的时候会自动重写URL
//实例
<a href="<c:url value="转页面的地址"/>">点击转页面</a>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值