JSP 标准标签库(JSTL),javaee 教程视频
| 非 | ! | not |
| 加 | + | |
| 减 | - | |
| 乘 | * | |
| 除以 | / | div |
| 求莫 | % | mod |
el 表达式判断是否为空
| jsp | JSTL |
| --- | --- |
| request.setAttribute(“value1”,null) | ${empty requestScope.value1} = true |
| request.setAttribute(“value2”,
"") | ${empty requestScope.value1} = true |
| request.setAttribute(“value3”,new ArrayList()) | ${empty requestScope.value1} = true |
| request.setAttribute(“value4”,“i love you”) | ${empty requestScope.value1} = false |
| request.setAttribute(“value4”,“i love you”) | ${!empty requestScope.value1} = true |
jar 及配置
web.xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.4">
大于等于 2.4 方可支持 jstl ,先引入 standard.jar 和 jstl.jar
jstl 标签的用法 在页面引入 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
输出标签 -----------
<c:out value="ppp" /> 输出 ppp
<c:out value="null" default="ddd"/> 输出 ddd 可以设置默认值
<c:out value="<font color="red">kkk</font>" escapeXml="false"/> 输出 红色的 kkk 默认的 escapeXml 为 true
赋值标签 -----------
<c:set value="123" var="jj" scope="session" /> 此时有个名为 jj,值为 123 的 session ,默认的 scope 为 page
${jj} 在页面打印出 123
<c:remove var="jj" /> 将其删除,可以指定 scope,默认为 page
逻辑标签 -----------
<c:if test="?" /> ?:代表条件 可以用 el 表达式
<c:choose>
<c:when test="?">
...... 相当于 if...else... c:when 可以有多个,相当于 else if
</c:when>
<otherwise>
......
</otherwise>
</choose>
循环控制标签 -----------
<c:forEach items="{list}是一个集合
${u.name}
</c:forEach>
<c:forEach items="${list}" var="u" varStatu="ss">
<c:choose>
<c:when test="u.age % 2 == 0">
<tr bgColor="red"> 如果集合中的数字是偶数,则当行为红色
</c:when>
<otherwise>
<tr>
</otherwise>
</choose>
</c:forEach>
<c:forEach items="${list}" var="u" begin="2" end="8" step="2"> 输出下表(从 0 开始)为 2 到 8 的元素,每次递增 2
${u.name} 将输出 u[2].name u[4].name u[6].name u[8].name
</c:forEach>
Map m = new Map();
m.put("k1","v1");
m.put("k2","v2");
request.setAttribute("mapValue",m);
<c:forEach items="mapValue" var="ma">
{ma.value} 输出: k1=v1 k2=v2
</c:forEach>
间隔符控制标签-------------
request.setAttribute("str","1,2,3,4,5");
<c:forTokens items="str" delims="," var="de">
${de} 输出 12345
</c:forTokens>
捕获异常标签 ----------
<c:catch var="info">
<%
Integer.parseInt("sdfsdf");
%>
</c:catch>
${info} 输出:异常信息
导入页面标签 -----------
<c:import url="http://www.baidu.com" /> 相当于 include
链接标签 ------------
<c:url value="http://www.baidu.com" var="v"/>
<c:param name="name" value="jack" />
<c:param name="age" value="20" />
</url>
${v} 输出 http://www.baidu.com?name=jack&age=20
重定向标签 ------------
<c:redirect context="/company" url="/index.jsp"> 定位到名叫 company 的项目下的 index.jsp 页面
=====================================================================
引入 JSTL 的相关的 jar 包.
在页面中引入标签库.<%@ taglib uri=”” prefix=””%>
<body>
<h1>jstl 标签</h1>
<c:set var="name" value="张三" scope="page"></c:set>
${name }
<c:set var="city" value="上海" scope="page"></c:set>
<c:out value="${city }" default="北京"></c:out>
<c:out value="<h1>标题一</h1>" escapeXml="false"></c:out>
<c:set var="n1" value="10" scope="page"></c:set>
<c:set var="n2" value="20" scope="page"></c:set>
<c:if test="${n1<n2 }" var="flag" scope="page">
n1 小于 n2!
</c:if>
<c:if test="${flag }">
n1 小于 n2!
</c:if>
<br/>
<c:set var="n1" value="30" scope="page"></c:set>
<c:set var="n2" value="20" scope="page"></c:set>
<c:if test="${n1>=n2 }" var="flag" scope="page">
n1 大于等于 n2!
</c:if>
<c:if test="${flag }">
n1 大于等于 n2!
</c:if>
</body>
<body>
<h1>JSTL 常用标签:forEach</h1>
<h3>遍历数组</h3>
<%
String[] arr = {"张三","李四","王五"};
pageContext.setAttribute("Arr", arr);
%>
<c:forEach var="i" items="${Arr }">
${i }
</c:forEach>
<h3>遍历 List 集合</h3>
评论