如何使用JSTL
一. 创建项目时,J2EE Specification Level选择 Java EE 5.0(WEB-INF\lib目录下生成两个JAR文件:jstl.jar和standard.jar,WEB-INF目录下生成很多的.tld文件,在使用JSTL标签的JSP页面上使用taglib指令导入标签库描述符文件)
如果原项目是 J2EE1.4或1.3的话,可以鼠标右键点击项目,选择Build Path——>Configure build path ——>删除原有的1.4或1.3的Libraries ——>Add Libraries——>Myeclipse Libraries ——>选择Java EE 5 Libraries
见 下载word附件
二. Taglib指令:
<%@ taglib url=”标签描述符文件” prefix=”前缀名” %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
它是JSP指令的一种,作用在JSP页面中,将标签库描述符文件(.tid)引入页面中,并设置前缀,利用标签的前缀去使用标签库描述符文件中的标签。
三. <c:out>标签
语法:
1.<c:out value=”value” [escapeXml]=”{true|false}” [default=”defaultValue”] />
2. <c:out value=”value” [escapeXml]=”{true|false}” >
defaulstValue
</c:out>
属性:
见 下载word附件
例如:
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jstl</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>
<% session.setAttribute("username","<h1>session设置的值</h1>"); %>
<c:out value="HelloWorld!" /></br>
<c:out value="${username}" default="默认值" /></br>
<c:out value="${username2}">
username2 无值 输出默认值
</c:out></br>
<c:out value="${sessionScope.username}" escapeXml="false"/>
</body>
</html>
运行后的效果:
见 下载word附件
四. <c:set>标签
语法:
1.<c:set var=” Name” value=”value” [scope=”{page / request / sesstion / application}”] />
2.<c:set var=” Name” value=”value” [scope=”{page / request / sesstion / application}”] >
Value
</c:set>
3.<c:set value=”value” target=”target” property=”propertyName” />
4. <c:set value=”value” target=”target” property=”propertyName” >
Value
</c:set>
属性:
见 下载word附件
例如:
<c:set var="username" value="无名于天下" ></c:set>
<c:out value="${username}"></c:out>
输出 结果“无名于天下”
五.<c:remove>标签
语法:<c:remove var=”name” [scope=”{page / request / sesstion / application}”] />
六. <c:catch>捕获异常
<body>
<c:catch var="ex">
<%
String str = "r23fwf";
int i = Integer.parseInt(str);
%>
</c:catch>
两种错误输出方式:
<c:out value="${ex}"/>
<br>或<br>
${ex}
</body>
页面显示:
见 下载word附件
七.<c:if>标签
语法:
<c:if test=”condition” var=”name” [scope=”{page / request / sesstion / application}”]/>
<c:if test=”condition” var=”name” [scope=”{page / request / sesstion / application}”]>
Content
</c:if>
属性:
见 下载word附件
例:
<body>
<c:set var="username" value="admin" scope="session"/>
<c:if test="${sessionScope.username=='admin'}">
欢迎你,管理员<c:out value="${username}" /><br>
</c:if>
</body>
输出效果:欢迎你,管理员admin
八.<c:choose>标签 、<c:when>标签 和 <c:otherwise>标签 、param标签
语法:
<c:choose>
Content(when / when + otherwise)
</c:choose>
<c:when test=”条件” var=”name” [scope=”{page / request / sesstion / application}”] >
Content
</c:when>
<c:otherwise>
Content
</c:otherwise>
属性:
见 下载word附件
见 下载word附件
例:
<body>
<c:choose>
<c:when test="${param.age>70}">
这是一位老人!
</c:when>
<c:when test="${param.age<=70 and param.age > 35}">
这是一位中年人!
</c:when>
<c:when test="${param.age<=35 and param.age > 0}">
这是一位年轻人!
</c:when>
<c:otherwise>
这个人还没出生呢!
</c:otherwise>
</c:choose>
</body>
页面效果: 见 下载word附件