首页 > 代码库 > 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循环的状态信息,可以取indexcountfirstlast等值。

例如: 

<%@ 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是被导入的文件资源的URLcontext是上下文路径,用于访问同一个服务器的其他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标签(二)