代码之家  ›  专栏  ›  技术社区  ›  naivists

我能把复杂的参数传递给Java applet吗?

  •  4
  • naivists  · 技术社区  · 14 年前

    我对Java很陌生,我必须创建一个电子签名文件的小程序。将从ASP.NET网页应用程序调用小程序。

    现在,我将小程序作为 <object id="EDOCApplet" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"> 并向applet发送如下参数:

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

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

    我需要的是通过小程序A的能力 列表 多个文件及其“显示名称”。例如,将它像XML字符串一样写下来很简单:

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

    不过,据我所见 HTML4.01 specification , the PARAM HTML元素可能没有内容,也没有结束标记。

    我正在考虑的选择是:

    • HTML对XML结构进行编码,并将其发送到单个param对象中的applet。
    • 创建参数对象列表并构造它们的名称,如“file1”、“description1”、“file2”、“description2”、“file3”…然后在Java Applet中创建一个while循环来读取文件名,同时存在任何文件名。

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   Bozho Michał Mech    14 年前

    以逗号分隔:

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

    然后使用 String.split() :

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

    对于更复杂的结构,您可以使用 JSON 代表他们。

        2
  •  1
  •   Laurent K    14 年前

    您还可以为小程序提供公共方法:

    initFile(String path, String description)
    

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

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