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

<%@ attribute %>
说明
这个指令只能用于标签文件中。它声明了标签文件所支持的属性。

语法
<%@attributename="attrName"[description="description"]
[required
="true|false"][fragment="true|false"|[type="attrDataType"]
[rtexprvalue
="true|false"]]%>


属性
名称默认值描述
description无对属性的描述,可以通过网页设计工具提供给网页设计人员
fragmentfalsetrue时表示属性为一个jsp代码片段,false时转换为type属性所指定的类型
name无属性名
requiredfalse如果该属性是必须的,则为true
rtexdprvaluetrue如果属性必须作为一个静态文本值提供,为false。如果值为true,表示属性值可以由EL或java表达式提供
typeString属性数据类型,不支持基本类型


备注
使用fragment属性时,就不能再使用rtexprvalue和type属性。对于一个片段,总能接受运行时表达式值,而且类型固定为javax.servlet.jsp.tagext.JspFragment。

示例
<%@attributename="date"type="java.util.Date"%>
<%@attributename="pattern"fragment="true"%>

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

语法
<%@indludefile="pageOrContextRelativePath"%>


属性
名称默认值描述
file无所包含文件的页面相对URI路径或上下文相对路径


备注
一个页面可以有多个Include指令。包含页面和所有被包含的页面加在一起构成了所谓的JSP编译单元。

示例
<%@includefile="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"]%>


属性
名称默认值描述
autoFlushtrue是否自动刷新输出,如果为false,缓冲区满时抛出异常
buffer8kb指定页面缓冲区大小
contentTypetext/html或text/xml页面所生成响应的MIME类型,还可能包括响应字符集。对于JSP页面,默认值为text/html;对应JSPDocument,默认值为text/xml
errorPage无页面代码抛出异常时,要跳转的目标页面
extends无JSP页面的编译单元的基类,必须实现为JspPage或HttpJspPage接口
import无页面导入的java包,唯一可以重复的属性
info无页面描述文本
isELIgnoredfalse是否忽略EL表达式
isThreadSafetrue页面是否可以为并行的请求提供服务
languagejava页面脚本的语言,目前之支持java
pageEncoding见描述用于JSP页面的编码。常规页面默认为ISO-8859-1,对于JSPDocument文档,默认为UTF-8
sessiontrue是否在页面启用用户会话


备注
编译单位可以有多个page指令,但所有的import和pageEncoding属性都会被合并。对于编译单元内的文件,只能有一个page指令。

示例
<%@pagelanguage="java"contextType="text/html;charset=GB2312"%>
<%@pageimport="java.util.*,java.text.*"%>
<%@pageimport="java.sql.Date"%>

<%@ tag %>
说明
只能在TagFile文件中使用,定义了文件自身的属性,另外还定义了相应自定义标签的属性。

语法
<%@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-contentscriptless定义动作体类型
description无文本描述信息
display-name无IDE环境显示的名称
dynamic-attributes无指定用于保存未声明属性值的变量,为一Map,键为属性名,值为属性值
example无展示如何使用标签的例子
import无页面导入的java包,唯一可以重复的属性
isELIgnoredfalse是否忽略EL表达式
languagejava页面脚本的语言,目前之支持java
lareg-icon无IDE环境下使用的大图标(32*32)的路径
pageEncodingISO-8859-1用于标签文件的编码
small-icon无IDE环境下使用的小图标(16*16)的路径


备注
对于JSP2.0容器,isELIgnored的默认值为false,而对于早期JSP容器,该值为true。

示例
<%@tagbody-content="empty"dynamic-attributes="dynAttrs"%>

<%@ taglib %>
说明
声明一个在页面中使用的标签库

语法
<%@taglibprefix="prefix"[uri="taglibURI"|tagdir="contextRelatvePath"]%>


属性
名称默认值描述
prefix无指定自定义标签库的前缀
uri无可以是在库TLD中或应用web.xml文件中定义的库的符号,也可以是库TLD文件或jar文件的页面相对URI路径或上下文相对URI路径
tagdir无包含标志文件的目录的上下文相对路径,以/WEB-INF/tags开头


备注
可以在jsp页面和tagfile页面使用。

示例
<%@taglibprefix="ora"uri="orataglib"%>
<%@taglibprefix="c"uri="http://java.sun.com/jstl/core"%>
<%@pageprefix="mylib"tagdir="/WEB-INF/tags/mylib"%>

<%@ variable %>
说明
只能在TagFile中使用,声明了标记文件为页面所提供的变量。

语法
<%@variablename-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无标记文件用于保存其所创建值的局部页面作用域变量的名字。容器将此局部变量的值复制到调用页面的一个页面作用域变量中
declaretrue指定用于保存未声明属性值的变量,为一Map,键为属性名,值为属性值
description无描述
scopeNESTED导入变量的范围
variable-classString验证类的全路径


备注
name-from-attribute属性必须和alias共同使用,但是不能和name-given一起出现。

示例
<%@variablename-from-attribute="var"alias="current"
Variable-class
="java.util.Date"scope="AT_END"%>
<%@attributename="var"required="true"rtexprvalue="false"%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值