2010-01-26 138 views
4

我對Java真的很陌生,我必須創建一個用於以電子方式簽署文檔的小程序。該小程序將從ASP.Net網頁應用程序調用。我可以將複雜參數傳遞給Java Applet嗎?

現在,我嵌入小程序在頁面作爲<object id="EDOCApplet" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93">和將參數傳遞給小程序是這樣的:

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

在小程序,我可以使用小程序的內置方法getParameter("EdocPath")獲得的價值;

我需要的是能夠通過小程序列表幾個文件及其「顯示名稱」。舉例來說,這將是簡單的把它寫下來像一個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元素可能沒有內容,它沒有結束標籤。

我考慮的選擇,分別是:

  • HTML編碼XML結構,並把它在一個單一的參數對象
  • 創建PARAM對象的列表,並構建自己的名字,如「給小程序File1「,」Description1「,」File2「,」Description2「,」File3「...然後在Java applet中創建一個while循環來讀取文件名。

但是,沒有一種解決方案看起來很優雅。問題是,這種情況下的最佳做法是什麼?

回答

1

通過他們逗號分隔:

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

然後用String.split()

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

在更復雜的結構的情況下,你可以使用JSON來代表他們。

+0

聽上去很合理,在我的情況(我」將不得不考慮如何對描述進行編碼,這些描述也可能包含逗號)。 但是如果我需要將更復雜的結構發送到小程序,像樹一樣,我該怎麼辦? – naivists 2010-01-26 07:49:30

+0

你可以使用JSON :) – Bozho 2010-01-26 10:18:49

+0

哦,是的,JSON!這應該夠了吧。 – naivists 2010-01-26 20:13:48

1

您也可以提供你的小程序的公共方法:

initFile(String path, String description) 

,並呼籲從JavaScript代碼這種方法(在其中您可以循環)

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

這聽起來不錯!我怎麼知道,何時調用JavaScript代碼,Applet引發了一些「onload」事件?還是應該小程序本身嘗試加載「URL:」javascript:initializeMe()「? – naivists 2010-01-26 12:12:26

+0

在我的代碼中,我從applet(http://java.sun.com/products/plugin/1.3/docs/jsobject.html)調用回調來說「你好,我準備好了!」但我想有更好的方法來初始化Sun最近發佈的applet。 – 2010-01-26 13:06:31

相關問題