JSP 行为标签
JSP行为标签使用 XML 语法结构来控制 servlet 引擎,它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等;
JSP 行为标签严格遵守 XML 格式,其语法如下:
<jsp:action_name attribute="value" />动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,它用JSP作为前缀,可用的标准动作元素如下:
| jsp:include | 用于在当前页面中包含静态或动态资源 |
| jsp:useBean | 寻找和初始化一个JavaBean组件 |
| jsp:setProperty | 设置 JavaBean组件的值 |
| jsp:getProperty | 将 JavaBean组件的值插入到 output中 |
| jsp:forward | 从一个JSP文件向另一个文件传递一个包含用户请求的request对象 |
| jsp:plugin | 用于在生成的HTML页面中包含Applet和JavaBean对象 |
| jsp:element | 动态创建一个XML元素 |
| jsp:attribute | 定义动态创建的XML元素的属性 |
| jsp:body | 定义动态创建的XML元素的主体 |
| jsp:text | 用于封装模板数据 |
所有的动作标签都含有2个属性:id属性、scope属性;
id 属性:是动作元素的唯一标识,可以在JSP页面中引用,动作元素创建的id值可以通过PageContext来调用;
scope 属性:用于识别动作元素的生命周期,scope属性定义了相关联id对象的寿命。 该属性的值有4个:
- page:页面范围, 当前PageContext可用,直到当前 Servlet.service() 调用返回;
- request:请求范围,在与 当前 Servlet 关联的 ServletRequest 中继续可用,直到当前请求完成;
- session:会话范围,与 Servlet 关联的 HttpSession(如果有)中继续可用,直到 HttpSession 失效;
- application:应用程序范围,在 ServletContext 中继续可用,直到该 ServletContext 被回收。
<jsp:include>
<jsp:include>动作元素用来包含静态和动态的文件,该动作把指定文件插入正在生成的页面。
<jsp:include>动作标签区别于 include 指令,include指令 是在JSP文件被转换成Servlet的时候引入文件,而<jsp:include>插入文件的时间是在页面被请求的时候;
语法格式如下:
<jsp:include page="相对URL地址" flush="true" />相关的属性
| page | 包含在页面中的相对URL地址。 |
| flush | 布尔属性,定义在包含资源前是否刷新缓存区。 |
简单示例:
被插入的 mian.jsp 和 插入的 data.jsp
main.jsp
<h1>This is a page which is be included</h1> <jsp:inlcude page="data.jsp" flush="true" />data.jsp
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %><p>Time :<%= new SimpleDateFormat("yyy-MM-dd hh:mm:ss").format(new Date()) %><p><jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>
这3个动作标签主要适用于创建,设置,访问Java Bean的,详见:06. JSP 访问 JavaBean
<jsp:forward>
<jsp:forward>动作把请求转到另外的页面。jsp:forward标记只有一个属性page。语法格式如下所示:
<jsp:forward page="相对URL地址" />示例:
main.jsp
<jsp:forward page="data.jsp" />data.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><p> Hello world! <%= new Date() %></p><jsp:plugin>
jsp:plugin动作用来根据浏览器的类型,插入通过Java插件 运行Java Applet所必需的OBJECT或EMBED元素;
如果需要的插件不存在,它会下载插件,然后执行Java组件。 Java组件可以是一个applet或一个JavaBean;
plugin动作有多个对应HTML元素的属性用于格式化Java 组件。param元素可用于向 Applet 或 Bean 传递参数;
以下是使用plugin 动作元素的典型实例:
<jsp:plugin type="applet" codebase="dirname" code="MyApplet.class" width="60" height="80"> <jsp:param name="fontcolor" value="red" /> <jsp:param name="background" value="black" /> <jsp:fallback> Unable to initialize Java Plugin </jsp:fallback> </jsp:plugin><jsp:element> 、 <jsp:attribute>、 <jsp:body>
<jsp:element> 、 <jsp:attribute>、 <jsp:body>动作元素动态定义XML元素。即意味则这些 XML元素 在编译时是动态生成的而非静态;
以下实例动态定义了XML元素:
<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="utf-8"></head><body><jsp:element name="xmlElement"><jsp:attribute name="xmlElementAttr"> 属性值</jsp:attribute><jsp:body> XML 元素的主体</jsp:body></jsp:element></body></html>浏览器产生的结果如下:
<html><head><meta charset="utf-8"></head><body><xmlElement xmeElementAttr="属性值"> XML 元素的主体</xmlElement></body></html><jsp:text>
<jsp:text>动作元素允许在JSP页面和文档中使用写入文本的模板,语法格式如下
<jsp:text>模板数据</jsp:text>以上文本模板不能包含其他元素,只能只能包含文本和EL表达式
如果需要在 XHTML 中声明 DOCTYPE,必须使用到<jsp:text>动作元素,实例如下:
<jsp:text> <![CDATA[<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd" >]]></jsp:text><head><title>jsp:text action</title></head><body><books><book><jsp:text> Welcome to JSP Programming</jsp:text></book></books></body></html>

本文详细介绍了JSP行为标签的功能及使用方法,包括动态插入文件、重用JavaBean组件、页面跳转等功能,并提供了示例代码。同时,还介绍了各标签的属性及其应用场景。
155

被折叠的 条评论
为什么被折叠?



