jstl语法详解|jsp网页学习与交流|j2ee学习网

 JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。

下面我们来介绍c:import,c:redirect  ,c:param, c:url ,  c:forEach ,c:choose, c:out 结合的实例,
我们先看上面几个关键词的意思
c:import :导入文件,包含文件类似。
c:param:参数设置。
c:url :设置url。
c:choose: 选择标签。
c:out :输出内容。

下面我们看一段java代码的实例:

 

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib prefix="c" uri="c.tld资源文件中有定义" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'JSTL_test.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<h1>测试jstl核心库</h1>
<hr>
<li>测试c:out</li>
hello(default):<c:out value="${hello}"/><br>
hello(el表达式):${hello }<br>
hello(如果不存在可以使用默认值huangbiao):<c:out value="${hello}" default="huangbiao"></c:out>
hello(如果不存在可以使用默认值huangbiao):<c:out value="${hello}">huangbiao</c:out>

<li>测试c:set和c:remove</li>
<c:set value="123" var="temp"/>
temp:${temp }<br>
<c:remove var="temp"/>
temp:${temp }<br>

<li>测试条件控制标签c:if</li>
<c:if test="${v1 lt v2}" var="v">
` v1 小于 v2<br>
v = ${v }
</c:if>

<c:if test="${empty v3}">
v3为空
</c:if>
<c:if test="${not empty v4}">
v4不为空
</c:if>

<li>测试条件控制的标签c:choose,c:when,c:otherwise</li>
<c:choose>
<c:when test="${v1 lt v2}">
v1 小于 v2
</c:when>
<c:when test="${v1 eq v2}">
v1 等于 v2
</c:when>
<c:otherwise>
不知道
</c:otherwise>
</c:choose>

<li>测试循环控制标签c:forEach</li>
<table>
<tr>
<td>姓名</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<c:choose>
<c:when test="${empty userlist}">
<tr>
<td>没有符合条件的数据</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach item="${userlist}" var="user">
<tr>
<td>${user.username }</td>
<td><${user.age }/td>
<td>${user.group.name }</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</table>

<li>测试循环控制标签c:forEach,varstatus</li>
<table border="1">
<tr>
<td>姓名</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<c:choose>
<c:when test="${empty userlist}">
<tr>
<td>没有符合条件的数据</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach items="${userlist}" var="user" varStatus="vs">
<c:choose>
<c:when test="${vs.count % 2 == 0}">
<tr bgcolor="red">
</c:when>
<c:otherwise>
<tr>
</c:otherwise>
<td>${user.username }</td>
<td><${user.age }/td>
<td>${user.group.name }</td>
</tr>
</c:choose>
</c:forEach>
</c:otherwise>
</c:choose>
</table>


<li>测试循环控制标签c:forEach,begin,end,step</li>
<table border="1">
<tr>
<td>姓名</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<c:when test="${empty userlist}">
<tr>
<td>没有符合条件的数据</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach items="${userlist}" var="user" begin="2" end="8" step="2">
<tr>
<td>${user.username }</td>
<td><${user.age }/td>
<td>${user.group.name }</td>
</tr>
</c:forEach>
</c:otherwise>

<li>测试循环控制标签c:forEach,普通循环</li>
<c:forEach begin="1" end="10">
a<br>
</c:forEach>

<li>测试循环控制标签c:forEach,输出map</li>
<c:forEach items="${maplist}" var="v">
${v.key }-----${v.value }<br>
</c:forEach>

<li>测试c:catch</li>
<%
try{
Integer.parseInt("dsafd");
}catch(Exception e){
out.println(e.getMessage());
}
%>
<c:catch var="info">
<%
Integer.parseInt("dsafd");
%>
</c:catch>
${info }<br>

<li>测试c:import</li>
相当于include用法<br>
<c:import url="hb.html"/>
<c:import url=">

<li>测试c:url 和 c:param</li>
<c:url value="

http://localhost:8080/drp/user_add.jsp" value="v">
<c:param name="username" value="jack"/>
<c:param name="age" value="20"></c:param>
</c:url>
${v}<br>

<li>重定向c:redirect</li>
<c:redirect context="/struts_login" url="/index.jsp"></c:redirect>

</body>
</html>

 

转载自:http://www.csdnjava.com/forum.php?mod=viewthread&tid=593

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值