1、<c:if> 标签的使用
第一种:
<c:if test="条件表达式" var="变量名" scope="范围"/>
第二种:
<c:if test="条件表达式" var="变量名" scope="范围">
程序体
</c:if>
test如果等于"true"那么执行代码 如果不等于true 那么不执行
var 是一个 bool型的变量用于保存 条件结果
scope是一个取值的范围
下面是一个简单使用代码:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<c:if test="3>1"var="aa"><c:outvalue="{aa}"></c:out>
</c:if>
</body>
</html>
2、<c:choose> <c:when> <c:otherwise> 标签的使用 这个标签相当于java中的 switch语句
<c:choose>
<c:when test="${1>2}"> //对test进行赋值的时候 一定要把表达式结果转换为 字符串
代码段
</c:when>
<c:when test="${2>1}">
代码段
</c:when>
</c:choose>
实例代码
<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<c:choose>
<c:when test="1>2"><c:outvalue="1大于2"></c:out></c:when><c:whentest="{2>1}">
<c:out value="1小于2"></c:out>
</c:when>
</c:choose>
</body>
</html>
3、<c:forEach> 标签可以迭代 实现了 java.util.Collection接口类
以及实现了 java.util.Map接口的 键值对
或者数组
<c:forEach>有2种标签
第一种:
是迭代集合或者键值对 对于迭代次数未知
<c:forEach items="集合对象的名字要转换成字符串类型" var="集合中每一个值" varStatus="当前的状态变量" >
程序体。。。。。
</c:forEach>
varStatus 有四个属性
first 是否是第一个元素
last 是否是最后一个元素
count 当前迭代的次数
index表示 当前元素的下标
第二种:
<c:forEach begin="开始的变量大小" end="结束时候变量的大小" step="步长"> //这个类似于 for循环
循环体
</c:forEach>
第二种比较简单因此我只写出迭代 实例:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
String []name={"one","two","three","four","five"};
request.setAttribute("name", name); //java中数组也是引用数据类型
%>
<c:forEach items="name"var="currentVar"varStatus="currentStatus"><c:outvalue="{currentVar}<br>" escapeXml="false"/>
<c:if test="currentStatus.first">第一个元素<br></c:if><c:iftest="{currentStatus.last}">
最后一个元素<br>
</c:if>
<c:out value="当前元素下标:${currentStatus.count}"></c:out>
</c:forEach>
</body>
</html>
4、
<c:forTokens> 可以用来迭代一个字符串 这个字符串有个特点 被多个符号分割开来
这个标签会自动将分割后的字符串编程一个字符串数组 我们不仅可以迭代输出 也可以进行指定下标的元素输出
用法和 <c:forEach>类似
<c:forEach items="可拆分的字符串" delims="分隔符号" [var="保存每次迭代的变量名" ] [begin="分割后的字符串数组第一个下标"] [end="分割后字符串数组最后下标"]
[step="步长"] [varStatus="迭代状态变量这里和上面的一样"]>
</c:forEach>
下面是简单的例子
<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
String str="张三|李四|王五|马六";
request.setAttribute("strName", str);
%>
<c:forTokens items="strName"delims="|"var="myName"><c:outvalue="{myName}<br>" escapeXml="false"/>
</c:forTokens>
</body>
</html>
5、<c:import >标签用来将文本包含到 当前页面 文本可以使动态也可以是静态 如果url是null 或者不存在 那么都会抛出一个JspException异常
<c:import url="文本的url" [var="变量"] [scope="范围"] [charEncoding="字符编码"]>
<c:import ....> 等子程序
</c:import >
<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<c:import url="http://127.0.0.1/1.txt"></c:import>
</body>
</html>
6、<c:url value="跳转的页面路径" [var="变量接收路径"] [scope="范围"]/> 不带参数的页面跳转我们可以这样使用
<a href="<c:url value='idnex.jsp'/>">点击去首页</a>
如果带参数那么 就需要有body
<c:url value="index.jsp" var="go">
<c:param name="param" value="参数"/>
</c:url>
<c:out value="${go}"/>
相比之下我们可以看到 第二个产生的url是 index.jsp;jsessionid=C1C2E5EAE9F2797E44971A409A1F01D5?param=%b2%ce%ca%fd 带上一个参数
第一个不带参数的url是 idnex.jsp
7、<c:redirect url="要跳转的网页,不止是本地网络上其他页面也可以" /> 当一个请求到来的时候会自动跳转到指定网页 和 response.sendRedirect(String url); 类似
下面带body的标签是可以重定向页面 并且传递参数过去
<c:redirect url="网页url">
<c:param name="param1" value="value">
</c:redrect>
加入页面时 http://www.baidu.com那么 之后的参数就是