jstl核心标签使用



  1. 输出计算结果标签 cout
  2. 设置对象值属性标签 cset
  3. 删除对象值属性标签 cromove
  4. 捕获异常标签  ccatch
  5. if条件判断标签 cif
  6. 5 条件判断标签的综合应用cchoose cwhen cotherwise
  7. 迭代标签 cforEach
  8. 7处理TokenString专用迭代标签cforTokens
  9. 构造URL标签 curl
  10. 重定向URL标签 credirect
 jstl核心标签使用

1.1 输出计算结果标签 <c:out>

<c:out value=”value” escapeXml=”{true/false}” default=”default”/>

Value:输出的信息  escapeXml:默认取值为true  default:当value为空时,要显示的值

列子1:

页面头:引入 <%@ page prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>

//–使用方法一:

<c:out value=”xisna is a tuors city” />

<c:out value=”${null} escapeXml=”true” default=”tourist city”/>

//–使用方法二:

<c:out value=”${null}”>

Xi an jiao is a very famous school.

</c:out>

1.2 设置对象值属性标签 <c:set>

一:用value属性的值 设定一个范围变量的值

<c:value=”value” var=”var” scope=”request/session/application”/>

二:用value属性 设置一个对象的属性值

<c:set value=”value” target=”target” property=”property”/>

三:用于body内容设定一个对象的属性值

<c:set target=”target” property=”property”>

Body content

</c:set>

事列jsp:

<body>

<c:set var=”name” value=”chengguoyong”/>

<c:out value=”${name}”/>

<br>

<c:set var=”name”>

chengguoyong

</c:set>

<c:out value=”${name}”/>

</body>

1.2 删除对象值属性标签 <c:romove>

事列jsp:

<body>

<c:set value=”chengguoyong” var=”name” scope=”page”/>

<c:set value=”chengyong” var=”name” scope=”session” default=”susan”/>

<c:remove var=”name” scope=”page”/>

<c:out value=”${name}”/>

<br>

<c:remove var=”name” scope=”session” />

<c:out value=”${name}”/>

1.3 捕获异常标签  <c:catch>

事列jsp:

<body>

<c:catch var=”exception”>

<%

int i=6;

int j=0;

%>

<%=i/j%>

</c:catch>

<c:out value=”${exception.message}”/>

<c:out value=”${exception.cause}”/>

1.4 if条件判断标签 <c:if>

事列jsp:

<BODY>

<c:set value=”1.4″ var=”height” />

<c:if test=”${height<1.1}” var=”result”/>//条件不成立,返回false

<c:out value=”${result}”/> –输出为false

<br>

<c:if test=”${height>1.1}” var=”result”>//条件成立 执行里面的内容

身高过1.1的人 需要买票

<c:if>

1.5 条件判断标签的综合应用:<c:choose> <c:when> <c:otherwise>


如:

<c:choose>

<c:when test=”condition1″>

body content1

</c:when>

<c:when test=”condition2″>

body content2

</c:when>

……

<c:otherwise>

condtion1 bock

</c:otherwise>

</c:choose>

事列jsp:

<BODY>

<c:set var=”seaon” value=”spring”/>

<c:choose>

<c:when test=”${seaon=’spring’}”>//输出结果为春天

春天,是一个好玩的季节

</c:when>

<c:when test=”${seaon=’summer’}”>

夏天,是一个很热的季节

</c:when>

<c:when test=”${seaon=’autumn’}”>

秋天,是一个旅游的季节

</c:when>

<c:otherwise>

冬天,是一个寒泠的季节

</c:otherwise>

</c:choose>

1.6迭代标签 <c:forEach>

如:

说明:items:进行循环的项目 step :循环步长(每隔“几个”显示)varStatus:记录循环状态的变量

<c:forEach [var="var"] items=”items” varStatus=”varstauts”

[begin="begin"] [end="end"] [step="step"]>

body content

</c:forEach>

<c:foreach var=”i” begin=”1″ end=”10″ step=”2″>

<c:out value=”${i}”/><br>

</c:foreach>

输出结果:1,3,5,7,9

1.7处理TokenString专用迭代标签<c:forTokens>

<c:forTokens>标签用来处理一系列特定符号隔开的字符串

delims :分隔字符串集合 如:delims=“,”

说明:

<c:forTokens items=”stringTokens” delims=”delims”

[var="var"] [varStatus="varstatus"] [begin="begin"] [end="end"] [step="step"]

body content

</c:forTokens>

 

c:forTokens属性说明表

 

属性名 类型 说明 引用EL
items 数组、集合类、字符串和枚举类型 被循环遍历的对象,多用于数组与集合类 可以
delims String 字符串的分割符,可以同时有多个分隔字符(依次写在引号内即可。如要按“|”和“,”分割,则写成delims=”|,”。 不可以
var String 变量名称(要被分割的原始字符串) 不可以
begin int 循环起始位置 可以
end int 循环终止位置 可以
step int 循环的步长(增量) 可以
varStatus String 循环的状态变量(次数) 不可以

 

举例:

<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%>
<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>
<html>
<head>
<title>jstl的用法–c:forTokens|c:set|c:if|c:out</title>
</head>
<body>
<c:set var=”sourceStr” value=”张三|四李|王二,麻子|jolian|jack” />
原字符串:<br><c:out value=”${sourceStr}” /><br><br>
分割后:<br>
<c:forTokens var=”str” items=”${sourceStr}” delims=”|,” varStatus=”status”>
<c:out value=”${status.count}” />.
<c:out value=”${str}” />!!
<c:if test=”${status.last}”>
***用c:if实现***
<br>总共被分为<c:out value=”${status.count}” />段.
</c:if>
</c:forTokens>
</body>
</html>

1.8 构造URL标签 <c:url>

<c:url value=”/trai.jsp” var=”My_url”/>

${My_url}

1.9 重定向URL标签 <c:redirect>

<c:redirect url=”welcome.jsp”/>