103_JavaWeb_JSTL标签库_替换JSP代码脚本
【摘要】 JSTL标签库 JSP Standard Tag Library JSP 标准标签库EL 表达式主要是为了替换jsp 中的表达式脚本标签库则是为了替换代码脚本。这样使得整个 jsp页面变得更佳简洁JSTL 由五个不同功能的标签库组成功能范围 URI 前缀备注核心标签库http://java.sun.com/jsp/jstl/corec重点 格式化http://java.sun.com/j...
JSTL标签库 JSP Standard Tag Library JSP 标准标签库
EL 表达式主要是为了替换jsp 中的表达式脚本
标签库则是为了替换代码脚本。这样使得整个 jsp页面变得更佳简洁
JSTL 由五个不同功能的标签库组成
功能范围 | URI | 前缀 | 备注 |
核心标签库 | http://java.sun.com/jsp/jstl/core | c | 重点 |
格式化 | http://java.sun.com/jsp/jstl/fmt | fmt | |
函数 | http://java.sun.com/jsp/jstl/functions | fn | |
数据库 | http://java.sun.com/jsp/jstl/sql | sql | (不使用) |
XML | http://java.sun.com/jsp/jstl/xml | x | (不使用) |
JSTL 标签使用
1 导包 taglibs-standard-impl-1.2.1.jar taglibs-standard-spec-1.2.1.jar
2 引入 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3 使用 core 核心库
i. <c:set /> (很少用)
ii. <c:if test=" "> </c:if>
iii. <c:choose> <c:when> <c:otherwise>标签
iv. <c:forEach >
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--
i.<c:set /> 作用:set标签可以往域中保存数据
域对象.setAttribute(key,value);
scope 属性设置保存到哪个域 page表示PageContext域(默认值)
request表示Request域 session表示Session域
application表示ServletContext域
var属性设置key是多少 value属性设置值
--%>
保存之前:${ sessionScope.abc } <br>
<c:set scope="session" var="abc" value="abcValue"/> <br>
保存之前:${ sessionScope.abc } <br>
<br>
<%-- ii.<c:if />
if标签用来做if判断。 test属性表示判断的条件(使用EL表达式输出) --%>
<c:if test="${1==1}">
<h1>1等于1</h1>
</c:if>
<c:if test="${2!=1}">
<h1>2不等于1</h1>
</c:if>
<hr>
<%--iii.<c:choose> <c:when> <c:otherwise>标签 作用:多路判断。跟switch ... case .... default非常接近
choose标签开始选择判断
when标签表示每一种判断情况 test属性表示当前这种判断情况的值
otherwise标签表示剩下的情况
1、标签里不能使用html注释,要使用jsp注释
2、when标签的父标签一定要是choose标签
--%>
<%
request.setAttribute("height", 170);
%>
<c:choose>
<c:when test="${requestScope.height > 190}">
<h11>小巨人</h11>
</c:when>
<c:when test="${ requestScope.height > 180 }">
<h11>标准</h11>
</c:when>
<c:otherwise>
<h11>姐夫</h11>
</c:otherwise>
</c:choose>
</body>
</html>
foreach
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>forEach</title>
</head>
<body>
<%-- 1.遍历1到10,输出--%>
<%-- begin属性设置开始的索引--%>
<%-- end 属性设置结束的索引--%>
<%-- var 属性表示循环的变量(也是当前正在遍历到的数据)--%>
<%-- --%>
<table border="1">
<tr>
<c:forEach begin="1" end="5" var="i">
<td>第 ${i}行</td>
</tr>
</c:forEach>
</table>
<hr>
<%-- 2.遍历Object数组
for (Object item: arr) items 表示遍历的数据源(遍历的集合) var 表示当前遍历到的数据 --%>
<%
request.setAttribute("arr", new String[]{"18610541354","18688886666","18699998888"});
%>
<c:forEach items="${requestScope.arr}" var="i">
${i} <br>
</c:forEach>
<hr>
<%-- 3 遍历 map--%>
<%
Map<String,Object> map = new HashMap<String, Object>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
// for ( Map.Entry<String,Object> entry : map.entrySet()) {
// }
request.setAttribute("map", map);
%>
<c:forEach items="${requestScope.map}" var="entry">
<h11>${entry.key} = ${entry.value} </h11> <br>
</c:forEach>
</body>
</html>
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)