jsp参考(三) 指令元素[directive]

本文详细介绍了JSP的指令元素,包括attribute用于声明标签文件支持的属性,include用于静态包含文件,page定义页面属性如脚本语言、错误处理,tag定义自定义标签的属性,taglib声明使用的标签库,以及variable声明标记文件提供的变量。每个指令的语法、属性及使用示例均有详述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<%@ attribute %>
说明 
这个指令只能用于标签文件中。它声明了标签文件所支持的属性。 
 
语法 
<%@ attribute name="attrName" [description="description"]
    [required
="true|false"] [fragment="true|false" | [type="attrDataType"]
    [rtexprvalue
="true|false"]] %>

 
属性 
名称 默认值 描述 
description 无 对属性的描述,可以通过网页设计工具提供给网页设计人员 
fragment false true时表示属性为一个jsp代码片段,false时转换为type属性所指定的类型 
name 无 属性名 
required false 如果该属性是必须的,则为true 
rtexdprvalue true 如果属性必须作为一个静态文本值提供,为false。如果值为true,表示属性值可以由EL或java表达式提供 
type String 属性数据类型,不支持基本类型 
 
 
备注 
使用fragment属性时,就不能再使用rtexprvalue和type属性。对于一个片段,总能接受运行时表达式值,而且类型固定为javax.servlet.jsp.tagext.JspFragment。 
 
示例 
<%@ attribute name="date" type="java.util.Date" %>
<%@ attribute name="pattern" fragment="true" %>

<%@ include %>
说明 
包含一个静态文件,将其内容与所包含的页面合并,其后再将结合的结果转换为一个页面实现类。 
 
语法 
<%@ indlude file="pageOrContextRelativePath" %>

 
属性 
名称 默认值 描述 
file 无 所包含文件的页面相对URI路径或上下文相对路径 
 
 
备注 
一个页面可以有多个Include指令。包含页面和所有被包含的页面加在一起构成了所谓的JSP编译单元。 
 
示例 
<%@ include file="header.html" %>

<%@ page %>
说明 
这个指令只能用于JSP页面中。它定义了依赖于页面的属性,如脚本语言、错误页面和缓冲需求等。 
 
语法 
<%@ page [autoFlush="true|false"] [buffer="8kb|NNkb|none"]
    [contentType
="mimeType"] [errorPage="pageOrContextRelativePath"]
    [extends
="className"] [import="packageList"] [info="info"]
    [isELIgnored
="true|false"] [isErrorPage="true|false"]
    [isThreadSafe
="true|false"] [language="java|language"]
    [pageEncoding
="encoding"] [session="true|false"] %>

 
属性 
名称 默认值 描述 
autoFlush true 是否自动刷新输出,如果为false,缓冲区满时抛出异常 
buffer 8kb 指定页面缓冲区大小 
contentType text/html或text/xml 页面所生成响应的MIME类型,还可能包括响应字符集。对于JSP页面,默认值为text/html;对应JSP Document,默认值为text/xml 
errorPage 无 页面代码抛出异常时,要跳转的目标页面 
extends 无 JSP页面的编译单元的基类,必须实现为JspPage或HttpJspPage接口 
import 无 页面导入的java包,唯一可以重复的属性 
info 无 页面描述文本 
isELIgnored false 是否忽略EL表达式 
isThreadSafe true 页面是否可以为并行的请求提供服务 
language java 页面脚本的语言,目前之支持java 
pageEncoding 见描述 用于JSP页面的编码。常规页面默认为ISO-8859-1,对于JSP Document文档,默认为UTF-8 
session true 是否在页面启用用户会话 
 
 
备注 
编译单位可以有多个page指令,但所有的import和pageEncoding属性都会被合并。对于编译单元内的文件,只能有一个page指令。 
 
示例 
<%@ page language="java" contextType="text/html;charset=GB2312" %>
<%@ page import="java.util.*,java.text.*" %>
<%@ page import="java.sql.Date" %>

<%@ tag %>
说明 
只能在Tag File文件中使用,定义了文件自身的属性,另外还定义了相应自定义标签的属性。 
 
语法 
<%@ tag [body-content="empty|scriptless|tagdependent"]
    [description
="description"] [display-name="displayName"]
    [dynamic-attributes
="attrCollVar"] [example="example"]
    [import
="packageList"] [isELIgnored="true|false"]
    [language
="java"] [large-icon="largeIconPath"]
    [pageEncoding
="encoding"] [small-icon="smallIconPath"] %>

 
属性 
名称 默认值 描述 
body-content scriptless 定义动作体类型 
description 无 文本描述信息 
display-name 无 IDE环境显示的名称 
dynamic-attributes 无 指定用于保存未声明属性值的变量,为一Map,键为属性名,值为属性值 
example 无 展示如何使用标签的例子 
import 无 页面导入的java包,唯一可以重复的属性 
isELIgnored false 是否忽略EL表达式 
language java 页面脚本的语言,目前之支持java 
lareg-icon 无 IDE环境下使用的大图标(32*32)的路径 
pageEncoding ISO-8859-1 用于标签文件的编码 
small-icon 无 IDE环境下使用的小图标(16*16)的路径 
 
 
备注 
对于JSP2.0容器,isELIgnored的默认值为false,而对于早期JSP容器,该值为true。 
 
示例 
<%@ tag body-content="empty" dynamic-attributes="dynAttrs"%>

<%@ taglib %>
说明 
声明一个在页面中使用的标签库 
 
语法 
<%@ taglib prefix="prefix" [uri="taglibURI" | tagdir="contextRelatvePath"] %>

 
属性 
名称 默认值 描述 
prefix 无 指定自定义标签库的前缀 
uri 无 可以是在库TLD中或应用web.xml文件中定义的库的符号,也可以是库TLD文件或jar文件的页面相对URI路径或上下文相对URI路径 
tagdir 无 包含标志文件的目录的上下文相对路径,以/WEB-INF/tags开头 
 
 
备注 
可以在jsp页面和tag file页面使用。 
 
示例 
<%@ taglib prefix="ora" uri="orataglib"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ page prefix="mylib" tagdir="/WEB-INF/tags/mylib" %>

<%@ variable %>
说明 
只能在Tag File中使用,声明了标记文件为页面所提供的变量。 
 
语法 
<%@ variable name-given="attrAndVarName" | name-from-attribute="attrName"
    alias
="varName" [declare="true|false"] [description="description"]
    [scope
="AT_END|AT_BEGIN|NESTED"] [variable-class="varType"] %>

 
属性 
名称 默认值 描述 
name-given 无 标记文件用于提供其创建值的变量的名字 
name-from-attribute 无 指定创建的变量的名字由属性指定 
alias 无 标记文件用于保存其所创建值的局部页面作用域变量的名字。容器将此局部变量的值复制到调用页面的一个页面作用域变量中 
declare true 指定用于保存未声明属性值的变量,为一Map,键为属性名,值为属性值 
description 无 描述 
scope NESTED 导入变量的范围 
variable-class String 验证类的全路径 
 
 
备注 
name-from-attribute属性必须和alias共同使用,但是不能和name-given一起出现。 
 
示例 
<%@ variable name-from-attribute="var" alias="current"
    Variable-class
="java.util.Date" scope="AT_END"%>
<%@ attribute name="var" required="true" rtexprvalue="false"%>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值