将 Java 小程序迁移到 Microsoft J# 浏览器控件(二)

翻译|其它|编辑:郝浩|2005-03-21 10:18:00.000|阅读 2119 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>


转换过程

转换 HTML 页时,转换器工具会删除原来的 <APPLET> 标记或 Java 小程序 <OBJECT> 标记,然后使用还包含上述 J# 浏览器控件 <OBJECT> 标记的 HTML 代码替换它们。转换器工具还会在每个运行此工具的目录中生成一个名为 jbctagconvert.js 的 JavaScript 文件。在浏览器中加载更新的 HTML 页时,更新的 HTML 连同 javascript 文件一起将 J# 浏览器控件呈现在浏览器窗口中。转换器工具将生成 JavaScript 文件以在即将发布的 Internet Explorer 更新中改进对 J# 浏览器控件的体验。有关详细信息,请参见针对开发人员的有关 Internet Explorer 更改的信息。

注意:<APPLET> 标记或 Java 小程序 <OBJECT> 标记在替换成 J# 浏览器控件 <OBJECT> 标记时,J# 浏览器控件 <OBJECT> 标记将放置在一个注释块中,并以 <SPAN> 标记开头。此注释块和关联的 <SPAN> 标记一定不要删除;因为必须有它们,才能显示 J# 浏览器控件。转换器工具生成的 JavaScript 文件 jbctagconvert.js 也一定不要删除;任何包含承载 J# 浏览器控件的 HTML 页的目录中都必须有此文件。
在转换这些标记前,转换器工具会创建原始文件的备份。原始文件的备份副本的扩展名为 .vjsbak。例如,index.htm 的备份副本为 index.htm.vjsbak。备份文件在原始文件的目录中创建。

转换器工具使用原始 <APPLET> 标记(或 Java 小程序 <OBJECT> 标记)的 CODE 和 CODEBASE 属性中的值来创建 VJSCODEBASE 属性的值。例如:

CODE = "MyAppletClass"
CODEBASE = http://www.microsoft.com/MyApplet

将修改为:

VJSCODEBASE =
http://www.microsoft.com/MyApplet/MyAppletClass.dll#MyAppletClass

默认情况下,转换器工具假定 J# 浏览器控件类的名称(此例中为 MyAppletClass)与 DLL (MyAppletClass.dll) 的名称相同。如果 J# 浏览器控件类的名称和 DLL 的名称不相同,则必须适当地修改 VJSCODEBASE 属性值。因此,在使用此转换器工具时,建议您将 Java 小程序编译为与小程序类同名的托管库。例如:

C:\MyAppletClassSources>vjc /target:library /out:MyAppletClass.dll *.java

在 VJSCODEBASE 属性中,J# 浏览器控件运行库仅支持 HTTP 和 HTTPS 协议。VJSCODEBASE 中的所有绝对路径都必须以 http:// 或 https:// 开头。在指定相对路径时,将使用 HTTP 协议加载 J# 浏览器控件。J# 浏览器控件不支持从与 DOCBASE 不同的位置加载控件。VJSCODEBASE 中的值或者必须与 DOCBASE 相同,或者必须是 DOCBASE 的一个子目录。DOCBASE 是指加载 HTML 页的位置。

在转换过程中,OBJECT 的许多属性都保持不变。由 TagConvert 转换的属性的详细信息将在下面逐一说明。J# 浏览器控件 <OBJECT> 标记中的许多参数与 <APPLET> 或 Java 小程序 <OBJECT> 标记的对应参数相同。

命令行选项

支持的命令行选项有:

/recurse:<wildcard>

    使转换器工具在当前目录及其所有子目录中按照通配符规范搜索要进行转换的文件。例如:

    TagConvert /recurse *.htm *.html

    升级当前目录及其子目录中所有具有 .htm 和 .html 扩展名的文件。

/verbose

   使转换器工具输出在转换运行期间发生更改的文件的名称。文件名将包括文件的完全限定路径。转换器工具还输出已分析文件的总数和已转换文件的总数。例如:

   TagConvert /verbose \AppletSources\Pages\*.htm > changedfiles.txt

   升级指定目录中所有具有 .htm 扩展名的文件。此外,还将修改过的文件的文件名转储到 changedfiles.txt 文件中。

/nologo

   取消显示版权消息。例如:

   TagConvert /nologo \AppletSources\Pages\*.htm

   升级指定目录中所有具有 .htm 扩展名的文件,并取消显示版权消息。

<APPLET> 标记与 J# 浏览器控件 <OBJECT> 标记之间的属性映射

下表列出了 <APPLET> 标记中的属性与 J# 浏览器控件 <OBJECT> 标记中的属性之间的映射关系。

<APPLET> 标记语法(包括 Internet Explorer 扩展) J# 浏览器控件 <OBJECT> 标记语法
CODEBASE VJSCODEBASE
CODE VJSCODEBASE
WIDTH WIDTH
HEIGHT HEIGHT
NAME ID
ID ID
ALIGN ALIGN
VSPACE VSPACE
HSPACE HSPACE
ARCHIVE 在当前版本中已删除并不再支持
ALT ALT
<PARAM> <PARAM>
<PARAM NAME = FireScriptEvents VALUE = True> 保持不变,但当前版本中不支持
<PARAM NAME = cabbase VALUE = cabFileName>
<PARAM NAME = cabinets VALUE = cabFileNames>
保持不变,但当前版本中不支持
<PARAM NAME = useslibrary VALUE = DUFriendlyName>
<PARAM NAME = useslibrarycodebase VALUE = DUFileName>
<PARAM NAME = useslibraryversion VALUE= DUVersionNumber>
保持不变,但当前版本中不支持
<PARAM NAME = namespace VALUE = applicationNamespace> 保持不变,但当前版本中不支持

在当前版本中,<APPLET> 标记中的下列属性不受支持,这些属性在 J# 浏览器控件 <OBJECT> 标记中没有等效属性:

  • archive、cabbase cabinets 属性。在当前版本中,不支持将 J# 浏览器控件打包成 .cab、.zip 或 .jar 文件。J# 浏览器控件必须作为独立的 .dll 文件部署到 Web 服务器。
     
  • FireScriptEvents 属性。在当前版本中,不支持由 HTML 页脚本中的 J# 浏览器控件激发的接收事件。
     
  • useslibrary、useslibrarycodebase、useslibraryversionnamespace 属性。J# 浏览器控件运行库不支持 MSJVM 的 Java 程序包管理器 (Java Package Manager) 语义。
    如果 <APPLET> 标记中的属性在 <OBJECT> 标记中有直接等效属性,则这些属性可以按原样复制。它们在 J# 浏览器控件 <OBJECT> 标记中的含义与原来在的 <APPLET> 标记中的含义相同。

如果 <APPLET> 或 Java 小程序的 <OBJECT> 标记同时具有 NAME 属性和 ID 属性;则删除 NAME 属性,而使用 ID 属性中的值。
 

部署 J# 浏览器控件

部署 J# 浏览器控件非常简单,只需将托管库和已更新的 HTML 页复制到 Web 服务器上适当的目录中即可。必须将托管库复制到 HTML 页所在的同一目录或其子目录下。如果使用 TagConvert 工具来更新 HTML 页,接下来应该将生成的脚本文件 jbctagconvert.js 复制到 HTML 页所在的同一目录中。

使用 IIS Web 服务器时,必须将虚拟目录上的“执行权限”字段设置为“仅限脚本”(IIS 中虚拟目录的默认权限级别)。

部署包含多个 DLL 的浏览器控件

一个 J# 浏览器控件可以拆分为多个 DLL 文件。在这种情况下,HTML 页中必须引用包含主 J# 浏览器控件类的 DLL。J# 浏览器控件运行库在运行时将根据需要下载其他的 DLL。

将包含多个 DLL 的控件部署到 Web 服务器时,必须将与同一 J# 浏览器控件相关的所有文件复制到同一目录。这些文件必须作为独立的文件进行复制,不能打包成 .cab、.zip 或 .jar 文件。
 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP