首页 > 代码库 > JSTL标签(二)
JSTL标签(二)
<c:if>标签,可以根据不同的条件的条件处理不同的业务,即执行不同的程序代码,<c:if>标签和java中的if语句功能类似。
语法:
<c:if test=”condition” var=”name” scope=”page”> 标签主体 </c:if>
test,必选属性,用于指定条件表达式。var,用于指定变量名,这个属性会指定test属性的判断结果存放在那个变量中,如果该变量不存在就创建他。
例如:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'CIf.jsp' starting page</title> </head> <body> <c:if test="${1<3}"> <%="满足条件!" %> </c:if> </body> </html>
<c:choose>、<c:when>、<c:otherwise>标签
<c:choose>标签可以根据不同的条件完成指定的业务逻辑,如果没有符合条件的,则会执行默认条件的业务逻辑。需要注意的是<c:choose>标签只能作为<c:when>和<c:otherwise>标签的父标签。
他们的语法结构是:
<c:choose> <c:whentest=”condition> 业务逻辑 </c:when> <c:whentest=”condition”> 业务逻辑 </c:when> <c:otherwise> 业务逻辑 </c:otherwise> </c:choose>
<c:when>标签可以根据不同的条件执行相应的业务逻辑,<c:otherwise>标签用于指定默认条件处理逻辑。
在<c:choose>标签中,如果发现一个test属性值为true的<c:when>标签,则其后面的<c:when>标签将不再处理。
注意:在<c:choose>标签中必须有一个<c:when>标签,但是<c:otherwise>标签是可选的。
例如:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'CChoose.jsp' starting page</title> </head> <body> <jsp:useBean id="date" class="java.util.Date"/> <c:choose> <c:when test="${date.hours>=0&&date.hours<5 }"> 凌晨好! </c:when> <c:when test="${date.hours>=5&&date.hours<=8 }"> 早上好! </c:when> <c:when test="${date.hours>=8&&date.hours<=11 }"> 上午好! </c:when> <c:when test="${date.hours>=11&&date.hours<=13 }"> 中午好! </c:when> <c:otherwise> 下午好! </c:otherwise> </c:choose> </body> </html>
<c:foreach>标签
<c:foreach>标签可以根据循环条件遍历数组和集合类中的所有或部分数据。
语法:1、数字索引迭代
<c:forEach begin="start"end="finish" var="name" varStatus="statusName"> </c:forEach>
或集合成员迭代
<c:forEach items="data"var="name" begin="start" end="finish"varStatus="statusName"> </c:forEach>
items是数组、集合、字符串和枚举类型。即被循环遍历的对象。
var循环体的变量,用于存储items指定对象的成员。
begin循环的起始位置,如果没有指定从第一个开始迭代。
end循环的终止位置,如果没有指定,则一直迭代到集合最后一位。
varStatus循环的状态信息,可以取index、count、first、last等值。
例如:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'CForeach.jsp' starting page</title> </head> <body> <% List list = new ArrayList(); list.add("小明"); list.add("小红"); list.add("小刚"); request.setAttribute("arrlist", list); %> <c:forEach items="${arrlist}" var="student" varStatus="id" begin="0"> ${id.index} ${student}<br> </c:forEach> </body> </html>
URL操作标签
url标签是指与文件导入、重定向URL地址生成以及参数传递相关的标签。
<c:import>标签,该标签可以导入站内或其他网站的静态或动态文件到web页面中,与<jsp:include>相比,<jsp:include>只能导入站内的资源,<c:import>更加灵活。
语法:
<c:import url="url"context="context" charEncoding="encoding"></c:import>
url是被导入的文件资源的URL。context是上下文路径,用于访问同一个服务器的其他web工程,其值必须是以/开头;如果指定了该值,那么url属性值也必须以/开头。
charEncoding被导入文件的编码方式。
例如:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'CImport.jsp' starting page</title> </head> <body> <c:import url="index.jsp" charEncoding="utf-8"></c:import> </body> </html>
<c:redirect>重定向标签,
<c:redirect>标签能将客户端发送的request请求重定向到其他URL服务端,由其他程序处理客户端请求。
语法:
<c:redirect url="url"> <c:paramname="name"value=http://www.mamicode.com/"value"/>>param标签用于传递参数。参数名为name,值用value表示。
例如:
<%@ page language="java" contentType="text/html; charset=utf-8" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'CRedirect.jsp' starting page</title> </head> <body> <c:redirect url="Login.jsp"> <c:param name="name" value=http://www.mamicode.com/"张三"/>>然后看处理页面
<%@ page language="java" contentType="text/html; charset=utf-8" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'Login.jsp' starting page</title> </head> <body> <%request.setCharacterEncoding("utf-8"); %> <%=request.getParameter("name") %> </body> </html>
JSTL标签(二)