03. JSP 动作标签

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>




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值