annette: JSP-Daten in HTML-Formular verwenden (Ajax?)

Beitrag lesen

Hallo zusammen,

hab eine schwierige Frage(zumindest für mich).
Ich möchte aus einer Textdatei mehrere Auswahllisten dynamisch füllen.

1. Textdatei (file1) (Text liegt wie folgt vor):

Kategorie_1; Punkt_1; Punkt_1.1; Punkt_1.1.1;
Kategorie_1; Punkt_1; Punkt_1.1; Punkt_1.1.2;
Kategorie_1; Punkt_1; Punkt_1.1; Punkt_1.1.3;
Kategorie_1; Punkt_2; Punkt_2.1; Punkt_2.1.1;
Kategorie_2; Punkt_2; Punkt_2.1;
Kategorie_2; Punkt_2; Punkt_2.2;
Kategorie_3; Punkt_3; Punkt_3.1; Punkt_3.1.1; Punkt_3.1.1.1;
....

Die Textdatei lese ich zuerst mittels einer JSP Datei ein. (readIn.jsp). Hier steckt leider auch noch irgendwo ein Fehler.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page import=" java.io.*" %>
<%@ page import=" java.util.*" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>titel</title>
</head>
<body>
<%
// gewaehlterWert soll in JS-Datei ermittelt und hierher übergeben werden.

String gewaehlterWert="";

try{
 String filename= "file1.txt";
 String pfad= application.getRealPath("/");
 FileReader reader = new FileReader(pfad+filename);
 BufferedReader in = new BufferedReader(reader);
 StringBuffer sb= new StringBuffer();

Vector v= new Vector();
 SortedSet s=new TreeSet();
 String line="";
 String text="";
 line=in.readLine();
 while(line!= null){

text=text+line+";" ;

line=in.readLine();
 }
 in.close();

String eintraege[]= text.split(";");

for(int i=0; i<eintraege.length; i++)
 {
 if (gewaehlterWert == eintraege[i]) {
            s.add(eintraege[i+1]);
  }
 }
//soll an JS-Datei zurückgegeben werden und zwar in eine mit diesem //Inhalt dynamisch erzeugte Auswahlliste

for(Iterator i=s.iterator(); i.hasNext();)
 out.println(i.next());

}
catch(FileNotFoundException e1) {
 out.println("<br>Datei nicht gefunden: "+e1+"<br>");
 }
catch(IOException e2) {
 out.println("<br>Datei konnte nicht geöffnet werden:"+e2+"<br>");
 }
%>
</body>
</html>

die Daten sollen an folgende HTML-Datei übergeben werden (index.html):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.or/TR/REC-html40/strict.dtd">

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<script type="text/javascript">

// fällt weg, Daten sollen aus readIn.JSP geliefert werden
var daten= new Array('Punkt_1', 'Punkt_2');

function kategorie_anzeigen(el)
{

var fo = document.getElementsByName("verzeichnis");
 sel = document.createElement("select");
 fo[0].appendChild(sel);

var kategorieAuswahl = el.options[el.selectedIndex].value;

//fällt weg
 if(kategorieAuswahl == "Kategorie_1"){
  for(var i = 0; i < daten.length; i++){
   var opt = new Option(daten[i], daten[i]);
   sel.appendChild(opt);
  }
 }
}

function sendRequest(el){
  // Element ist die Auswahl

var selects = document.getElementsByTagName("select");
  var loeschen = 0;

for(var i = 0; i < selects.length; i++){

if(selects[i] == el){
 // trifft zu wenn die aktuelle Auswahl in der Liste erreicht wurde
    loeschen = 1;
    continue;
   }

if(loeschen){
 // Elemente werden gelöscht die nicht mehr benötigt werden.
    document.getElementsByName("verzeichnis")[0].removeChild(selects[i]);
   }
  }

//fliegt spater raus
 kategorie_anzeigen(el);
 }

</script>

</head>
<body>
<form name="verzeichnis">
<select size="1" name="kategorie" onchange="sendRequest(this)">
<option value="Kategorie_1" selected>Kategorie_1</option>
<option value="Kategorie_2">Kategorie_2</option>
<option value="Kategorie_3">Kategorie_3</option>
</select>
</form>
</body></html>

Problem bei der ganzen Sache, wie kann ich die Daten übertragen und wie speichere ich sie in der JSP Datei am besten ab, sodass sie nachher in der nächsten Auswahllist erscheinen.
Würde mich über eure Hilfe wirklich freuen. Bin schon kurz vor der Verzweiflung. :-(

Liebe Grüße
annette