初识jstl的核心标签库常用标签

在学习jstl标签库的时候最常用的就是核心标签库了,虽然简单,但是在使用的时候依然会有一些踌躇。所以今天将这些常用的标签的使用方法做一个记录,以便以后查看和复习。

在使用jstl标签的核心库的时候要使用taglib标签引入相应的标签库,如下:

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

1. jstl常用标签

  1. 用于输出数据

<c:out></c:out>

属性 说明
value 要输出的内容
escapeXml 是否忽略xml的特殊字符,默认为true,不使用转义,false使用转义
<c:out value="${200*2 }"></c:out><!-- 输出400 -->
<c:out value="<script> alert("你好")</script>"></c:out><!--输出<script> alert("你好")</script> -->
<c:out value="<script>alert('你好')</script>" escapeXml="false"></c:out><!--弹出警告框 你好-->
  1. 用于储存数据,相当于setAttribute()方法

<c:set></c:set>

属性 说明
scope 储存数据的域(jsp的四大域page,request,session,application)
value 要储存的数据
var 储存数据的变量
property 要修改变量的bean属性
target 要修改变量的bean对象
<!-- 相当于request.setAttribute("message","Hello World");
<c:set scope="request" value="Hello World" var="message"></c:set>
使用property和target属性相当于<jsp:useBean id="" class=""></jsp:useBean>其中target相当于class属性,不常用。
<c:set target="xxx.Xxx" name="张三"></c:set>
  1. 删除一个数据,相当于removeAttribute()方法

<c:remove></c:remove>

属性 说明
var 要删除的属性名称
scope 作用域
<c:remove var="message" scope="request"></c:set>
  1. if标签

<c:if test=""></c:if>

属性 说明
test 条件,一个boolean值
var 用于存储条件结果的变量
scope var属性的作用域(四大域)
<c:if test="${message!=null }" var="test" scope="page">
		欢迎进入if
		变量的结果:${test }
	</c:if>
	
  1. 选择标签,其中<c:choose>和<c:otherwise>标签没有属性,<c:when>的属性在下面给出

<c:choose> <c:when test=""></c:when> <c:otherwise></c:otherwise>
</c:choose>

属性 说明
test 条件,是一个boolean值
<!-- choose标签 -->
	<c:choose>
		<c:when test="${money >=100 }">
			还不错呦
		</c:when>
		<c:when test="${money <100 }">
			呵呵!
		</c:when>
		<c:otherwise>
			什么都不是
		</c:otherwise>
	</c:choose>
  1. 循环标签,封装了Java里面的for循环和while循环

<c:forEach></c:forEach>

属性 说明
items 循环的内容,一般都是一个数组,map和set等
begin 开始的位置,int类型
end 结束的位置,int类型
step 步长,相当于for循环里面的i++,默认是1,int类型
var 当前循环内容的存储变量
varStatus 当前循环内容状态的存储变量
<!-- 相当于for(int i ;i<=10;i++) -->
	<c:forEach begin="0" end="10" step="1" var="i">
		<c:out value="${i }"></c:out>
	</c:forEach>
	<br>
	
<!-- 相当于for(String str : name)用来循环数组 -->
	<c:forEach var="name" items="${requestScope.name }">
		<c:out value="${name }"></c:out>
	</c:forEach>
	<br>
	
	<!-- 使用循环状态 -->
	<c:forEach items="${name }" var="name" varStatus="vs">
		值:${name };
		循环次数:${vs.count };
		循环下标:${vs.index };
		是否是最后一个:${vs.last }
		是否是第一个:${vs.first }
		<br>
	</c:forEach>
  1. 用来在url属性里面进行传值

<c:param></c:param>

属性 说明
name 要传的值的变量
value 值的内容
  1. url标签,可以在基础的路径前面自动加上项目名,在传参数的时候可以自动进行url编码,可以让<c:param></c:param>作为子标签进行传值

<c:url></c:url>

扫描二维码关注公众号,回复: 9057623 查看本文章
属性 说明
value 基础路径 如value=”/index.jsp“
var 存储编码好的url的变量
scope var作用的域
context 当前的网络主机名
<c:url value="/index.jsp" var="url1">
		<c:param name="name" value="你好!></c:param>
	</c:url>

在写前端代码的时候使用java代码感觉不够优雅,所以抽时间学习了一些jstl的一些标签的使用,关于EL表达式还是有一些困惑,而我这个人又喜欢钻牛角尖,其实就是有一个问题,困扰我很久了就是,${ pageContext.request.attribute(“name”) }这个表达式为什么不能这个使用,按理说他相当于 <% pageContext.getRequest.getAttribute(“name”);%>但是,不能这样写。我经过了很多的尝试但是还是没有解决我的困惑,所以就交给时间吧!在以后实际的使用过程中遇到了可能就自然而然的迎刃而解了吧!

以后尽量多写一些有质量的文章,一来锻炼自己的写作能力,二来记录自己的学习过程,好以后复习。

路漫漫其修远兮,吾将上下而求索!

发布了6 篇原创文章 · 获赞 8 · 访问量 1100

猜你喜欢

转载自blog.csdn.net/qq_40702383/article/details/91482798