JavaWeb JSTL标准标签库

184 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第33天,点击查看活动详情

jstl标准标签库

使用步骤:

  • 1)导入standar.jar和jstl.jar这两个jar文件 在这里插入图片描述

  • 2)使用tablig指令引入标签库的信息

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

1)<c:out>标签:用于输出内容到页面上

  • 输出常量
  • 输出作用域中存储的数据
  • 转义输出
  • 输出默认值
<%=  %>
<%  out.println()  %>

2)<c:set>标签:设置用的标签

  • 向四大域对象中增加域属性
  • 向Map集合中增加,修改键值对
  • 修改JavaBean的属性

3)<c:remove>标签

该标签用于删除四个域对象中的属性

4)<c:if>标签:可以进行条件判断

该标签执行达到的效果和java中的if语句效果一致

5)<c:choose>标签

实现多种分支情况的判断 和java中if…else if…else语句结构相似 语法:

	<c:choose>
		<c:when></c:when>
		<c:when></c:when>
		<c:when></c:when>
			……
		<c:otherwise></c:otherwise>
	</c:choose>

6)<c:forEach>标签:循环

c:foreach标签的语法

  • ①完成有循环次数的循环
  • ②可以对集合的数据进行迭代操作
  • ③可以对集合中存储的JavaBean对象进行操作

java代码的方式

	<%
		for(int i=1;i<=10;i=i+1){
			out.println(i);
		}
	%>

jstl的方式

  • begin="" 循环的开始
  • end="" 循环的结束
  • step="" 循环的步进情况 1=i++/i=i+1 2 = i=i+2
  • var="" 指定循环的变量
<c:forEach begin="1" end="10" step="1" var="i">
	${i}
</c:forEach>

使用c:foreach标签对集合的数据进行迭代操作

	<%
		ArrayList<String> list=new ArrayList<String>();
		list.add("a");
		list.add("b");
		list.add("c");
		list.add(0,"d");
		out.println(list);  //[d, a, b, c]
		                //下标     0  1  2  3
		out.println("<br/>");
		for(int i=0;i<list.size();i++){  //i=0 1 2 3
			out.println(list.get(i));
		} 
		//将list集合放入域对象中存储
		pageContext.setAttribute("list",list);
	%>

c:foreach标签对list集合进行迭代

  • items="" 要循环迭代的哪个集合,使用el表达式获取
  • var="" 每一次循环从集合中取出的内容赋值给var定义的值
  • varStatus="" 循环的状态
  • xx.index每一次循环取数据对应的下标,从0开始
  • xx.count表示执行的第几次循环状态,从1开始
	<c:forEach items="${list}" var="str" varStatus="status">
		str:${str}
		index:${status.index}
		count:${status.count}
		<br/>
	</c:forEach>

c:foreach标签对集合存储的JavaBean对象的操作

	<%
		Student stu1=new Student();
		stu1.setId(1001);
		stu1.setName("张三");
		stu1.setAge(20);
		pageContext.setAttribute("stu1",stu1);
		Student stu2=new Student(1002,"李四",25);
		pageContext.setAttribute("stu2",stu2);
		Student stu3=new Student(1003,"王五",22);
		Student stu4=new Student(1004,"赵六",30);
		//将stu1 stu2 stu3和stu4放入ArrayList集合中
		ArrayList<Student> stus=new ArrayList<Student>();
		stus.add(stu1);
		stus.add(stu2);
		stus.add(stu3);
		stus.add(stu4);
		out.println(stus);
		pageContext.setAttribute("stus",stus);
	%>

使用el表达式获取JavaBean对象中的属性

	学生1的相关信息:${stu1.id}  ${stu1.name}  ${stu1.age}
	<br/>
	学生2的相关信息:${stu2.id}  ${stu2.name}  ${stu2.age}
	<hr/>
	<!-- 不用单独的将每个学生的信息获取,可以使用c:foreach循环将stus集合中的数据依次取出 -->
	<c:forEach items="${stus}" var="stu">
		<!-- stu表示每一次循环取出的对应的学生对象 -->
		${stu}  每个学生的信息具体为:${stu.id} ${stu.name} ${stu.age}
		<br/>
	</c:forEach>

7)<c:forTokens>标签

用来浏览字符串中所有的成员,每个成员由定义的符号进行分隔。