4 Stimmen

Kann ich komplexe Parameter an ein Java-Applet übergeben?

Ich bin ein echter Java-Neuling und muss ein Applet erstellen, mit dem ich Dokumente elektronisch unterschreiben kann. Das Applet wird von einer ASP.Net-Webseitenanwendung aufgerufen.

Im Moment bette ich das Applet in die Seite als <object id="EDOCApplet" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"> und senden Sie Parameter an das Applet wie folgt:

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

Im Applet kann ich den Wert mit der integrierten Methode des Applets abrufen getParameter("EdocPath") ;

Was ich brauche, ist die Möglichkeit, dem Applet eine Liste von mehreren Dateien und deren "Anzeigenamen". Es wäre zum Beispiel einfach, sie wie eine XML-Zeichenkette aufzuschreiben:

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

Soweit ich jedoch sehe, dass in HTML4.01-Spezifikation le PARAM Das HTML-Element darf keinen Inhalt haben, und es hat kein End-Tag.

Die Möglichkeiten, die ich in Betracht ziehe, sind:

  • die Xml-Struktur in HTML kodieren und in einem einzigen PARAM-Objekt an das Applet senden
  • Erstellen einer Liste von PARAM-Objekten und Konstruieren ihrer Namen wie "File1", "Description1", "File2", "Description2", "File3"... dann im Java-Applet eine while-Schleife erstellen, um Dateinamen zu lesen, wenn es welche gibt.

Allerdings scheint keine der Lösungen elegant zu sein. Die Frage ist: Was ist in diesem Fall die beste Praxis?

1voto

Bozho Punkte 570413

Übergeben Sie sie kommagetrennt:

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

und verwenden Sie dann String.split() :

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

Im Falle komplexerer Strukturen können Sie JSON um sie zu vertreten.

1voto

Laurent K Punkte 3435

Sie können Ihr Applet auch mit einer öffentlichen Methode versehen:

initFile(String path, String description)

und rufen Sie diese Methode vom Javascript-Code aus auf (in dem Sie eine Schleife bilden können)

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X