03. JSP 动作标签

来源:互联网 发布:核冬天 知乎 编辑:程序博客网 时间:2024/05/26 09:55

JSP 行为标签


JSP行为标签使用 XML 语法结构来控制 servlet 引擎,它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等;
JSP 行为标签严格遵守 XML 格式,其语法如下:
动作元素基本上都是预定义的函数,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>插入文件的时间是在页面被请求的时候;
语法格式如下:
1
<jsp:include page="相对URL地址" flush="true" />
相关的属性
page包含在页面中的相对URL地址。flush布尔属性,定义在包含资源前是否刷新缓存区。
简单示例:
被插入的 mian.jsp 和 插入的 data.jsp
main.jsp
data.jsp
1
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
2
<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。语法格式如下所示:
示例:
main.jsp
1
...
2
<jsp:forward page="data.jsp" />
3
...
data.jsp


<jsp:plugin>

jsp:plugin动作用来根据浏览器的类型,插入通过Java插件 运行Java Applet所必需的OBJECT或EMBED元素;
如果需要的插件不存在,它会下载插件,然后执行Java组件。 Java组件可以是一个applet或一个JavaBean;
plugin动作有多个对应HTML元素的属性用于格式化Java 组件。param元素可用于向 Applet 或 Bean 传递参数;
以下是使用plugin 动作元素的典型实例:
1
<jsp:plugin type="applet" codebase="dirname" code="MyApplet.class"  width="60" height="80">
2
   <jsp:param name="fontcolor" value="red" />
3
   <jsp:param name="background" value="black" />
4
 
5
   <jsp:fallback>
6
      Unable to initialize Java Plugin
7
   </jsp:fallback>
8
 
9
</jsp:plugin>


<jsp:element> 、 <jsp:attribute>、 <jsp:body>

<jsp:element> 、 <jsp:attribute>、 <jsp:body>动作元素动态定义XML元素。即意味则这些 XML元素 在编译时是动态生成的而非静态;
以下实例动态定义了XML元素:
浏览器产生的结果如下:
1
<html>
2
<head><meta charset="utf-8"></head>
3
<body>
4
<xmlElement xmeElementAttr="属性值">
5
   XML 元素的主体
6
</xmlElement>
7
</body>
8
</html>


<jsp:text>

<jsp:text>动作元素允许在JSP页面和文档中使用写入文本的模板,语法格式如下
以上文本模板不能包含其他元素,只能只能包含文本和EL表达式
如果需要在 XHTML 中声明 DOCTYPE,必须使用到<jsp:text>动作元素,实例如下:
1
<jsp:text>
2
    <![CDATA[<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd" >]]>
3
</jsp:text>
4
<head><title>jsp:text action</title></head>
5
<body>
6
7
<books><book><jsp:text>  
8
    Welcome to JSP Programming
9
</jsp:text></book></books>
10
11
</body>
12
</html>