JSTL

249 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

JSTL(JavaServer Pages Standard Tag Library)Jsp标准标签库
Jsp标签是Sun公司定义的一套标准,由Apache足迹基于这套标准开发的一套标签库后与转给Sun公司,被称为JSTL,成为了JavaEE5.0的核心.
JSTL的使用:1、将JSTL标签对应的jar文件拷贝到/WEB-INF/lib目录下;2、使用taglib指令导入要使用的Jsp标签<%@taglib uri=" " prefix=" "%>uri:Jsp标签的命名空间,prefix:命名空间的前缀
<c:out>标签:用于输出一段文本到浏览器中
在这里插入图片描述
<c:set>标签:用于吧某一个对象存在指定的域范围内,或者设置Web域中的java.util.Map的属性对象或JavaBean类型的属性对象的属性
在这里插入图片描述
<c:if>标签:可以构造简单的"if-then"结构的条件表达式
在这里插入图片描述
<c:choose>标签:用于指定多个条件选择的组合边界,它必须与<c:when>和<c:otherwise>标签一起使用,使用<c:choose>,<c:when>和<c:otherwise>三个标签,可以构造类似"if-else if-else"的复杂条件判断;可以有多个<c:when>

<c:forEach>标签:用于对一个集合对象中的元素进行循环迭代操作,或者按指定的次数重复迭代执行标签体中的内容
在这里插入图片描述
测试:

<body>
<!-- c:out 浏览器上显示内容
value:要输出的值  default:value为null所输出的替代值
escapeXml:是否解析html  true不解析  false解析 -->

<c:out value="shm"></c:out>
<%
	String string = null;
	pageContext.setAttribute("name", string);
%>

 <c:out value="${name}" default="123" escapeXml="false"></c:out>

<c:out value="<h1>ncx</h1>" default="hhh" escapeXml="false"></c:out>

	<!-- c:set 设置某域中某个变量值
	var:变量名  value:变量值  scope:域 -->
	
<%
	pageContext.setAttribute("name", "zhangsan");
%>
	<c:set var="username" value="lisi" scope="session"></c:set>
	${sessionScope.username}<hr>
	${name}<hr>

	<!-- c:set 设置某个对象的属性值
	target:指定对象  property:指定对象的属性名  value:设置值 -->

	<%
		User user = new User("hh");
		pageContext.setAttribute("user", user);
	%>
<c:set target="${user}" property="name" value="wangwu"></c:set>
	${user.name}<hr>

<!-- if 判断tag 
test判断条件是布尔值 相当于if(condition)-->

<c:if test="${user.name eq 'wangwu'}">
	<h1>登录成功</h1>
</c:if>

<!-- choose
when test   类似if elseif
otherwise 类似else
可以有多个when test -->

<%
	int grade = 70;
	pageContext.setAttribute("grade", grade);
%>

<c:choose>
	<c:when test="${grade<60}">
		<p>回家等在挨揍吧</p>
	</c:when>
	<c:when test="${grade>60 and grade<80}">
		<p>表现不错</p>
	</c:when>
	<c:otherwise>
		<p>奖励个娃娃</p>
	</c:otherwise>
</c:choose>

<hr>

<!-- foreach  for(String str:list)
items:要遍历的集合,通过EL表达式获取
var:获取集合中元素,对应的变量名字 str
step:步 i++
varStatus:var的状态
count:编号  index:索引值  first  last -->


<%
	List<String> list = new ArrayList<>();
	list.add("aa");
	list.add("bb");
	list.add("cc");
	pageContext.setAttribute("list", list);
%>

	<c:forEach items="${list}" var="str" step="1" varStatus="status">
		<p>${status.count} ${str}</p>
	</c:forEach>

</body>

在这里插入图片描述