JSTL及Core标签库

JSTL是一个不断完善的开放源代码的JSP标签库,使用JSTL可以取代在传统JSP程序中嵌入Java代码的做法,大大提高程序的可维护性。

JSTL包含五类标准标签库,它们分别是核心标签库国际化/格式化标签库SQL标签库XML标签库函数标签库在使用这些标签库之前,必须在JSP页面的顶部使用<%@taglib%>指定定义引用的标签库和访问前缀。

以下为此五种标签库的引用指令格式和作用:

(1)使用核心标签库的taglib指令格式

<%@ taglib prefix="c" url="http:/java.sun.com/jsp/jsp1/core" %>

核心标签库主要用于完成JSP页面的常用功能,包括JSTL的表达式标签、URL标签、流程控制标签。例如用于输出文本内容的标签、用于条件判断的标签等等

(2)使用格式标签库的taglib指令格式

<%@ taglib prefix="fmt" url="http:/java.sun.com/jsp/jsp1/fmt" %>

国际化/格式化标签库包含实现Web应用程序的国际化标签和格式化标签。例如设置JSP页面的本地信息,设置JSP页面的时区等等

(3)使用SQL标签库的taglib指令格式

<%@ taglib prefix="sql" url="http:/java.sun.com/jsp/jsp1/sql" %>

SQL标签库包含用于访问和操作数据库的标签。例如数据库连接、从数据库中检索数据等。因为在软件分层开发模型中,JSP页面仅作为显示层,一般不会在JSP页面直接操作数据库,所以SQl标签库不常用

(4)使用XML标签库的taglib指令格式

<%@ taglib prefix="xml" url="http:/java.sun.com/jsp/jsp1/xml" %>

XML标签库包含对XML文档中的数据进行操作的标签,例如解析XML文件、输出XML文档中的内容,以及迭代处理XML文档中的元素。XML广泛应用于Web开发,使用XML标签库处理XML文档更加简单方便

(5)使用函数标签库的taglib指令格式

<%@ taglib prefix="fn" url="http:/java.sun.com/jsp/jsp1/functions" %>

函数标签库提供了一套自定义EL函数,包含JSP网页制作者经常要用到的字符串操作

1、JSTL中的Core标签库

1.1 表达式标签

作用:将一段文本内容或表达式的结果输出到客户端(如果文本中包含需要转义的特殊字符,则该标签会先进行HTML编码转换后再输出)

语法格式:

(1)没有标签体的情况

(2)有标签体的情况



        defaultValue

没有标签体的情况下需要使用default属性指定默认值,有标签体的情况下在标签体中指定输出的默认值。

参数:

[ ]方括号内的属性为可选

value属性用于指定输出的文本内容

default属性用于指定当value为null时输出的默认值,默认为空字符串

escapeXml属性用于指定是否将<、>、&等特殊字符进行HTMl编码转换后在输出,默认为真

作用:用于移除指定的JSP范围内的变量

语法格式:

参数:

var:用于指定要移除的变量名

scope:用于指定变量的有效范围,可选值有page、request、session和application,默认为page。如果在该标签中没有指定变量的有效范围,那么将分别在page、request、session和application的范围内查找该变量并移除,即在一个页面中,存在不同范围的多个同名变量时,会全部移除

1.2 流程控制标签

作用:用于条件判断

语法格式:

(1)没有标签体的情况

   

(2)有标签体的情况

  
    body content

参数:

test属性:用于设置逻辑表达式

var属性:用于指定逻辑表达式中变量的名字

scope属性:用于指定var变量的作用范围,默认为page

标签没有属性,它必须与一起使用

标签体中只能嵌套一个或多个标签、零个或一个标签,并且标签必须出现在标签前

标签语法格式:


    Body content( and  subtags)

标签语法格式:


    Body content

标签语法格式:


    conditional block

这三个标签中只有标签有一个test属性来用于条件判断,而标签作为 最后的分支,即前面的条件都不成立时才执行输出

1.3 循环标签

在JSP页面中经常需要对集合对象进行循环迭代操作,所以Core标签库提供了一个标签来用于迭代集合对象(Set、List、Map、数组等)中的元素

(1)迭代包含多个对象的集合


    body content

(2)迭代指定范围内的集合


    body content

参数:

var属性:用于将当前迭代到的元素保存到page域中的名称

items属性:用于指定将要迭代的集合对象

varStatus属性:用于指定将当前迭代状态信息的对象保存到page域中的名称

begin属性:用于指定从集合的第几个元素开始迭代(如果没有指定items属性则从begin指定的值开始迭代到结束为止)

step属性:用于指定迭代的步长,即迭代因子的增量

1.4 URL相关标签

在开发Web应用程序时,通常会在JSP页面中实现URL的重新以及重定向等特殊功能,所以Core标签库也提供了相关标签

  1. 用于获取URL地址中的附加参数
  2. 用于按特定的规则重新构造URL
  3. 负责重定向

通常嵌套在内使用

语法格式:

(1)使用value属性指定参数的值

(2)在标签体中指定参数的值


    parameter value

参数:

name属性:用于指定参数的名称

value属性:用于指定参数的值,当使用标签为一个URL地址附加参数时,它会自动对参数值进行URL编码。例如,传递的参数值为“中国”,则将其转换为“%e4%b8%ad%e5%9b%bd”后再附加到URL地址后面,这也是使用该标签的最大好处

语法格式:

(1)没有标签实体的情况

(2)有标签实体的情况,在标签体内指定构造的URL参数


    标签

参数:

value属性:用于指定构造的URL

context属性:用于指定导入同一个服务器下其他Web应用的名称

var属性:用于指定将构造的URL地址保存到域对象的属性名称

scope属性:用于将构造好的URL保存到域对象中

你可能感兴趣的:(JavaWeb,java,servlet,开发语言)