WEB项目-JSTL标签库

JSTL标签库

1、JSTL:JSP Standard Tag Library ,JSP标准标签库,JSP的内置标签

2、JSP的标签运行在服务器(Tomcat)中,和HTML标签不同

3、JSP标签的出现是为了简化编程,去除掉<% %>方式。底层也是Java代码

4、

5、引入jstl标签库,使用taglib指令

<%@ taglib prefix=" " uri=" "%>

    <!-- 引入了JSTL标签库 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

使用必须先使用前缀:<c:标签名 属性>输出内容(可以直接是HTML标签)</c:标签名>

6、JSTL核心标签

- 核心标签库(core)--- c

- fn.tld --- EL函数库

7、EL表达式和JSTL标签操作的都是域对象中的属性和属性值

out标签

1、作用:输出域对象的值或者常量

2、属性

- value  -- 输出的内容

- default  -- 默认值

- escapeXml  -- 设置默认转义,默认是转义

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h4>JSTL方式</h4>
	<%
		int a = 10;
		request.setAttribute("num", a);
	%>
	<c:out value="${ requestScope.num }"></c:out>
	<c:out value="11"></c:out>
	<!-- default 设置输出的默认值 -->
	<c:out value="${ num2 }" default="默认默认"></c:out>
	<!-- escapeXml属性 -->
	<c:out escapeXml="false" value="<a href='http://www.baidu.com'>百度</a>"></c:out>
</body>
</html>

 set标签

1、作用:向域中存入值

2、<c:set >

3、属性

- var  -- 属性名称

- value  -- 属性值

- scope  -- 域范围

        <c:set var="username" value="zhangsan" scope="page"></c:set>
	<c:out value="${ pageScope.username }"></c:out>
	${ pageScope.username }

if标签

1、if标签可以用来判断

2、属性

- test  -- 判断条件返回true或者false

- var  -- test返回的结果保存到var中

- scope -- 域的范围

	<c:set var="num" value="10" scope="page"></c:set>
	
	<c:if test="${ pageScope.num eq 10 }" var="i" scope="page">
		num = 10
		${ pageScope.i }
	</c:if>

choose标签

1、作用:判断数据

2、语法:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h4>JSTL方式</h4>
	<c:set var="num" value="10" scope="page"></c:set>
	<c:choose>
		<c:when test="${ pageScope.num >= 10 }">
			num>=10
		</c:when>
		<c:when test="${ pageScope.num < 10 }">
			num<10
		</c:when>
		<c:otherwise>
			其他
		</c:otherwise>
	</c:choose>
</body>
</html>

 foreach标签

1、迭代数据。遍历list集合

2、语法:<c:forEach>

3、属性:

和java中的foreach比较

for(String str : 集合(strs))

- var  -- 循环遍历的数据保存到var中,相当于str变量

- intems  -- 相当于集合(strs),从域对象中取值

普通for循环for(int i = 0;i<10;i++){}

- begin  -- 循环从哪里开始 int i = 0

- end  -- 循环到哪里结束 i < 10

- step  -- 步长 i++

- varStatus  -- 迭代相关的信息

-- index  -- 下标值

-- count  -- 计数器

-- first  -- 判断是否是第一个成员

-- last  -- 判断是否是最后一个成员

案例:将用户列表显示在页面上

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h4>JSTL方式</h4>
	<h4>获取request域中的list集合</h4>
	<c:forEach var="user" items="${ requestScope.ulist }">
		${ user.username }
		${ user.password }
	</c:forEach>
	
	<h4>用户的信息列表</h4>
	<table border="1" width="60%" cellpadding="10">
	<tr>
		<th>序号</th>
		<th>姓名</th>
		<th>密码</th>
		<th>操作</th>
	</tr>
		<c:forEach var="user" items="${ requestScope.ulist }" varStatus="s">
			<tr align="center">
				<td>${ s.count  }</td>
				<td>${ user.username }</td>
				<td>${ user.password }</td>
				<td><a href="#">删除</a></td>
			</tr>
		</c:forEach>
	</table>
</body>
</html>

url标签

    1.作用:有提交的地址相关。(超链接 form表单 img的src属性)
    2.好处:假如你使用form的action的编写地址
        <form action="${pageContext.request.contextPath}/xxx">
        如果使用<c:url的标签>    <form action="<c:url value='/xxx' >">
    3.特点:如果不写项目名,默认给你加上项目名称。
    4.好处:使用<c:url>,默认给你拼接jsessionid    session的追踪(在请求的地址默认给你jsessionid=XCSDFSDFSD)
 

remove标签

1、作用:删除域对象中的属性

2、<c:remove >

- var  -- 要删除属性的名称  <c:remove var="${ xx }" scope="page"></c:remove>

- scope  -- 域范围

catch标签

1、作用:捕获异常

2、<c:catch >

3、属性 

- var  -- 如果发生了异常,把异常的信息保存到var变量中

猜你喜欢

转载自blog.csdn.net/Tommy5553/article/details/86301305