发信人: zeus_h(i番茄)
整理人: zjxyz(2002-09-08 22:58:02), 站内信件
|
发信人: javalover (欲下未下风悠扬), 信区: Java
标 题: Java & XML手记(8)
发信站: 北大未名站 (2001年11月17日01:18:45 星期六) , 站内信件
下文是JSP程序的XML视图的细节描述:
◆JSP注释
JSP注释(就是指<%--comment--%>形式的注释)在JSP程序的XML视图中不会通过,所以我们
在把使用标准JSP语法编写的JSP程序转换为基于XML语法的JSP文档时,必须首先把JSP注释去
掉。
◆page编译指令
JSP标准语法中的page编译指令:
<%@ page { attr=”value” }%>
应该被转换为XML元素的形式,如下所示:
<jsp:directive.page { attr=”value” }/>
◆taglib编译指令
JSP标准语法中的taglib编译指令:
<%@ taglib uri=”uriValue” prefix=”prefix” %>
会被转换为JSP文档jsp:root元素的xmlns属性。至于具体的形式取决于Tag Libraries的
URI的值(uriValue),如果uriValue是一个相对的路径,那么应该转换为:
<jsp:root xmlns:prefix=”urn:jsptld:uriValue” …>
如果uriValue是一个绝对路径,那么应该转换为:
<jsp:root xmlns:prefix=”uriValue” …>
◆include编译指令
JSP标准语法的include编译指令:
<%@ include file=”value” %>
在转换为JSP文档的过程中,file属性所指的文件将占领include编译指令所在的位置,并
且展开和主文档结合在一起。
◆JSP声明
JSP标准语法中的JSP声明将被转换为jsp:declaration元素的形式。
例:
<%!
public String f(int i)
{
if(i<3)
{
return(“…”);
}
}
%>
应该被转换为:
<jsp:declarationa>
<![CDATA[
public String f(int i)
{
if(i<3)
{
return (“…”);
}
}
]]
>
</jsp:declaration>
注意:
我们使用了含CDATA字样的代码是为了可以在jsp:declaration元素中直接使用”<”、”
>”等符号。
例:
<%!
public String getSignature()
{
return “小楼一夜听春雨,深巷明朝买杏花。”;
}
%>
应该被转换为:
<jsp:declaration>
public String getSignature()
{
return “小楼一夜听春雨,深巷明朝买杏花。”;
}
</jsp:declaration>
◆JSP程序段
JSP标准语法中的JSP程序段将被转换为jsp:scriptlet元素,JSP程序段中的Java代码直接
就成为jsp:scriptlet元素的主体,不需要做任何改动。
例:
<%
out.println(getSignature());
%>
应该被转换为:
<jsp:scriptlet>
out.println(getSignature());
</jsp:scriptlet>
◆JSP表达式
JSP标准语法中的JSP表达式必须转换为jsp:expression元素的形式,JSP表达式中的Java
表达式或者Java变量直接就成为jsp:expression元素的主体。
例:
<%=getSignature()%>
应该被转换为:
<jsp:expression>
getSignature()
<jsp:expression>
◆标准的和自定义的操作
标准的和自定义的操作元素已经是基于XML的语法形式了,所以我们无需对它们进行转换
操作。
◆模板文本
在JSP程序中,所有普通的文本,即不包含在上面所述的转换操作中的内容,都应该转换为
jsp:text操作元素的主体。
9.JSP文档实例(一)
本文中,我们将举若干个JSP文档的实例,使得大家对JSP程序的XML语法形式有更多的感性
认识。
例(taglib1.jsp):
<html>
<title>positiveTagLib</title>
<body>
<%@taglib uri="http://java.apache.org/tomcat/examples-taglib" prefix="eg"%>
<%@taglib uri="/tomcat/taglib" prefix="test"%>
<%@taglib uri="WEB-INF/tlds/my.tld" prefix="temp"%>
<eg:test toBrowser="true"att1="Working">
Positive Test taglib directive
</eg:test>
</body>
</html>
程序清单 (taglib1.jsp)是采用标准JSP语法的JSP程序,如果转换为JSP文档,应该是什么
样子呢?请看下面程序清单(taglib2.jsp)。
例(taglib2.jsp):
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:eg="http://java.apache.org/tomcat/examples-taglib"
xmlns:test="urn:jsptld:/tomcat/taglib"
xmlns:temp="urn:jsptld:/WEB-INF/tlds/my.tld"
version="1.2">
<jsp:text>
<![CDATA [
<html>
<title>positiveTagLig</title>
<body>
]]>
</jsp:text>
<eg:test toBrowser="true" att1="Working>
<jsp:text>Positive test taglib directive</jsp:text>
</eg:test>
<jsp:text>
<![CDATA [
</body>
</html>
]]>
</jsp:text>
</jsp:root>
请看程序清单(taglib2.jsp),读者注意到<jsp:text>元素内部的HTML标记了吗,细心的
你应该发现,它们都被CDATA部件包含着,这样做的目的是为了可以在<jsp:text>元素内部直接
使用”<”、”>”等符号。如果你不希望使用CDATA部件,那么你可以把”<” 符号用”<
” 符号代替,把”>” 符号用”>” 符号代替。
例:
<jsp:text><![CDATA [</body></html>]]></jsp:text>
相当于:
<jsp:text></body></html></jsp:text>
10.JSP文档实例(二)
下面我们再来看一个例子(程序清单:test.jsp)
例(test.jsp):
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page"
version="1.2">
<jsp:directive.page contentType="text/html"/>
<jsp:text>
<![CDATA[
<html>
<head><title>JSP Document</title></head>
<body>
]]>
</jsp:text>
<jsp:text>
<center>
<font color="red" size="5">JSP Document
</center>
</jsp:text>
<jsp:declaration>
String msg="你好,这是我的第一个使用XML语法的JSP程序,欢迎指教!";
</jsp:declaration>
<jsp:declaration>
public String getSignature()
{
return "小楼一夜听春雨,深巷明朝买杏花";
}
</jsp:declaration>
<jsp:expression>msg</jsp:expression>
<jsp:text>
<br>
</jsp:text>
<jsp:scriptlet>out.println(getSignature());</jsp:scriptlet>
<jsp:text>
<br>当前时间:
</jsp:text>
<jsp:expression>(new java.util.Date()).toString()</jsp:expression>
<jsp:text>
<br>服务器信息:
</jsp:text>
<jsp:scriptlet>out.println(application.getServerInfo());</jsp:scriptlet>
<jsp:text>
<![CDATA[
</body>
</html>
]]>
</jsp:text>
</jsp:root>
程序清单 (test.jsp)全面演示了JSP文档的语法,包括jsp:root元素、jsp:text元素、j
sp:scriptlet元素、jsp:declaration元素、jsp:expression元素等等。程序清单(test.jsp
)经过JSP引擎的解释,其输出结果如下所示。
例,程序清单 (test.jsp)的输出结果:
<html>
<head><title>JSP Document</title></head>
<body>
<center>
<font color="red" size="5">JSP Document
</center>
你好,这是我的第一个使用XML语法的JSP程序,欢迎指教!
<br>
签名档:小楼一夜听春雨,深巷明朝买杏花
<br>当前时间:
Fri May 25 17:37:35 PDT 2001
<br>服务器信息:
Apache Tomcat/4.0
</body>
</html>
我们使用Apache Tomcat 4.0作为服务器运行程序清单 (test.jsp)。因为本文所介绍的
关于JSP文档的内容完全基于最新的JSP 1.2技术规范,目前可以支持JSP 1.2技术规范的服务
器只有Tomcat 4.0和J2EE SDK 1.3,所以我们采用Tomcat 4.0服务器作为运行平台。程序清单
(test.jsp)的运行效果如下图所示:
--
小楼一夜听春雨,深巷明朝卖杏花。
※ 来源:·北大未名站 bbs.pku.edu.cn·[FROM: 162.105.106.162]
--------------------------------------------------------------------------------
.. 返回
---- 象我这一种男人,学不懂怎快乐!
|
|