我可以将复杂参数传递给Java Applet吗?

时间:2010-01-26 07:08:03

标签: java html parameters applet

我是Java新手,我必须创建一个用于以电子方式签署文档的applet。 applet将从ASP.Net网页应用程序调用。

现在,我将applet作为<object id="EDOCApplet" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93">嵌入到页面中,并将参数发送到applet,如下所示:

<PARAM id="EdocPath" NAME="EdocPath" value="\\some\where\file.txt" />

在小程序中,我可以使用applet的内置方法getParameter("EdocPath")获取值;

我需要的是能够将applet传递给几个文件的列表及其“显示名称”。例如,将其写成XML字符串很简单:

<DocumentList>
  <UnsignedDocument Path="\\some\wehere\file1.txt" Description="Whatever comes here" />
  <UnsignedDocument Path="\\some\wehere\file2.txt" Description="Something else" />
...

但是,据我在HTML4.01 specification中看到,PARAM HTML元素可能没有内容且没有结束标记。

我正在考虑的选择是:

  • 对xml结构进行html编码并将其发送到单个PARAM对象中的applet
  • 创建PARAM对象列表并构建其名称,如“File1”,“Description1”,“File2”,“Description2”,“File3”......然后在Java applet中创建一个while循环来读取文件名,而有任何

然而,这些解决方案似乎都不优雅。问题是,在这种情况下,最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

将它们用逗号分隔:

<param id="files" name="files" 
     value="\\some\where\file.txt,\\some\where\file.txt" />

然后使用String.split()

String[] fileNames = param.split(",");

如果结构更复杂,您可以使用JSON来表示它们。

答案 1 :(得分:1)

您还可以使用公共方法为您的applet提供:

initFile(String path, String description)

并从javascript代码中调用此方法(您可以在其中循环)

var applet = getElementByTageName(applet);
applet.initFile("yourPath","yourDescription");