日期:2014-05-16  浏览次数:20461 次

标准标签库(JSTL)_李晖晖的个人总结(第十三次课)

准备实验环境

本章中所有的例子程序都在名为JSTL的WEB应用程序中运行,使用的Tomcat服务器版本为Tomcat5.5。为了简化代码和突出重点,本章中所有的JSP网页文件的例子程序都省略了<html><head><title><body>HTML全局架构标签。本章中用于描述标签的语法的各种符号的意义如下:

  •  […]:表示方括号中的内容是可选的;
  •  {option1|option2|option3|…}:表示花括号中用“|”字符分隔的各个选项不能同时出现,只能出现其中的一项;
  •  如果属性的值字体加粗,表示这个值是对应属性的默认值;

如果属性的值用斜体字表示,表示该属性可以是表达式;如果标签体的内容用斜体字表示,表示标签体的内容可以是JSP代码。

为了本章后面讲解的方便,这里先创建一个名为UserBean的JavaBean程序,如例程8-1所示。

例程 8-1  UserBean.java 

  package org.it315;
  public class UserBean
  {
  	private String userName;
  	private String password;
  	private String address;
  	private int visitCount;
  	public void setUserName(String userName)
  	{
  		this.userName = userName;
  	}
  	public String getUserName()
  	{
  		return userName;
  	}
  	public void setPassword(String password)
  	{
  		this.password = password;
  	}
  	public String getPassword()
  	{
  		return password;
  	}
  	public void setAddress(String address)
  	{
  		this.address = address;
  	}
  	public String getAddress()
  	{
  		return address;
  	}
  	public void setVisitCount(int visitCount)
  	{
  		this.visitCount = visitCount;
  	}
  	public int getVisitCount()
  	{
  		return visitCount;
  	}
  }


编译这个源程序,将编译后的UserBean.class文件放在<TOMCAT_HOME>\webapps\JSTL\WEB-INF\classes\org\it315目录中。

JSTL概述

JSTL简介

从JSP 1.1规范开始JSP就支持使用自定义标签,使用自定义标签大大降低了JSP页面的复杂度,同时增强了代码的重用性,因此自定义标签在WEB应用中被广泛使用。许多WEB应用厂商都开发出了自己的一套标签库提供给用户使用,这导致出现了许多功能相同的标签,令网页制作者无所适从,不知道选择哪一家的好。为了解决这个问题,Apache Jakarta小组归纳汇总了那些网页设计人员经常遇到的问题,开发了一套用于解决这些常用问题的自定义标签库,这套标签库被SUN公司定义为标准标签库(The JavaServer Pages Standard Tag Library),简称JSTL。使用JSTL可以解决用户选用不同WEB厂商的自定义标签时的困惑,JSP规范同时也允许WEB容器厂商按JSTL标签库的标准提供自己的实现,以获取最佳性能。

由于JSTL是在JSP 1.2规范中定义的,所以JSTL需要运行在支持JSP 1.2及其更高版本的WEB容器上,例如,Tomcat 5.5。

JSTL的逻辑组成

笔者在写本章内容时的JSTL规范的最新版本是JSTL 1.1,它是JSP 2.0最新规范中的一个重要组成部分。JSTL 1.1中包含四个标签库和一组EL函数。为方便用户使用,JSP规范中描述了JSTL的各个标签库的URI地址和建议使用的前缀名,如表8.1所示。本章中在使用JSTL标签时,使用的都是这些建议的前缀。

表8.1  JSTL

标签库功能描述

标签库的URI

建议前缀

核心标签库

http://java.sun.com/jsp/jstl/core

c

XML标签库

http://java.sun.com/jsp/jstl/xml

x

国际化/格式化标签库

http://java.sun.com/jsp/jstl/fmt

fmt

数据库标签库

http://java.sun.com/jsp/jstl/sql

sql

EL自定义函数

http://java.sun.com/jsp/jstl/functions

fn