好 上文 JSP JSTL引入依赖并演示基础使用我们导入了 JSTL的JAR 并 演示了 IF标签的基础使用
本文 我们来说说 平时开发的常用标签
这里 我们需要先强调一下 常用标签 操作的全部都是域对象
首先 我们来看
条件动作标签
条件动作标签的特点是 依赖于某些域对象值 控制页面输出结果
就像我们 java中的 if if else switch 等等
我们jsp中 有四个标签 if、choose、when、otherwise
先来说 if
我们可以这样写
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<%
request.setAttribute("num",10);
%>
<c:if test="${num > 0}">
<h1>你好 HTML</h1>
</c:if>
</body>
</html>
这里 我们在request作用域中定义了 num的值 为 10 然后 我们 用了 if标签 test中写条件 我们判断num大于1 那么 10自然比1大 这个条件是肯定成立的
除了这种 我们还可加一段
<c:if test="${num > 100}" var="mvcTg" scope="request"></c:if>
${mvcTg}
mvcTg存储 我们test是否成立的值 然后 我们声明的这个值是在域对象中的 具体它在哪个域是 scope控制的 这里 我们把他放在request中
然后 最后 我们用EL表达式 输出一下mvcTg 看看能不能输出到这个值
可以看到 这个输出没有任何问题 因为 num 的值是10 第一个条件肯定成立 10大于1 所以 中间的h1标签 你好HTML被输出
然后 我们定义一个域对象 mvcTg 存储第二个if标签的结果 条件是 num 大于100 10是小于100的 条件肯定不成立 然后mvcTg被存储在了域对象中 我们通过EL输出 也是成功将false输出了出来
但if其实除了 test 其他的基本都不怎么用
然后 这里需要强调 我们的if标签操作 没有else 如果你想在jsp标签中 实现else效果 就设置与成功相反的条件if
例如 我们这样
两个条件 完全相反 其实你可以直接把成功条件复制过来 在前面加一个感叹号 取反 这个我们之前也说过