# Übergabe von Parameter aus JSP an Java



## Jorous (14. Nov 2012)

Hallo Zusammen.
Lang, lang ists her, dass ich mich mit Java befasst habe. Aus diesem Grund wende ich mich mal an Hilfe hier im Forum.

Ich habe ein kleines Webformular geschrieben und habe folgendes Problem.

Über eine .jsp Seite frage ich verschiedene Parameter ab, welche in einer Tabelle gespeichert werden
Hier ein Ausschnitt mit einem Parameter "genehmiger_email":

```
...
   <td class="secondCol">
            <div class="idealWrap">
                <label><%= propManager.getText("txt.email")%></label>
                <input name="genehmiger_email" id="genehmiger_email" type="text" value=""/>
            </div>	                        
        </td>
...
```

Nun möchte ich diesen Parameter "genehmiger_email" in Java nutzen. Am Ende des Formulares befindet sich ein Button, welcher eine Email generiert und an diese in "genehmiger_email" gespeicherten Wert versenden soll.

Hier der nächste Ausschnitt aus dem Java Code:

```
public Address[] getMailTo() throws AddressException{
       
     //  if(request.getAttribute("genehmiger_email") != null);
     //  String str1 = request.getParameter("genehmiger_email");
     //  String str1 = this.getText("genehmiger_email");
     //  JOptionPane.showMessageDialog(null, str1);
        String str1 = request.getAttribute("genehmiger_email");
        
      //  String mailTo = this.getProp("mail.to"); 
        String mailTo = this.getProp(str1); 
        String[] mailTos = mailTo.split(",");
        Address[] adr = new Address[mailTos.length]; 
        for(int i=0;i<mailTos.length;i++){
        adr[i] = new InternetAddress(mailTos[i]);
        }
        return adr;
    }
```

Man sieht bereits, das ich mehrere Versuche gestartet habe, welche leider nicht zum gewünschten Erfolg geführt haben.

Nun meine Frage, wie übergebe ich diesen Wert an die Funktion getMailTo()?

p.s. Zur Erläuterung der anderen Eingaben im zweiten Code Abschnitt. Ich habe im ersten Versuch einen festen Wert "mail.to" verwendet, welchen ich in einer .properties Datei gespeichert habe. 

Bitte entschuldigt, wenn ich mich unverständlich ausdrücke. Aber meine Programmierkenntnisse sind start begrenzt.


----------



## nillehammer (14. Nov 2012)

> Nun meine Frage, wie übergebe ich diesen Wert an die Funktion getMailTo()?


Aus der Mischung von auskommentiertem Code und Code, der auf einem RequestParameter arbeitet, mit dem eine hier nicht dargestellte Methode getProp aufgerufen wird, ist es tatsächlich etwas schwierig, herauszufinden, was die Methode genau machen soll.

Aber, wenn ich den Sinn der Methode richtig verstehe, möchtest Du ihr einen String (oder eine variable Anzahl Strings) übergeben und einen Array von Adressen zurückbekommen. Der Methode sollte es erstmal egal sein, woher die email-Adressstrings kommen. Also würde ich sie so umschreiben:

```
public Adress[] parseEmailAdresses(String... emailAdressStrings) {

  final Adress[] result = new Address[emailAdressStrings.lenth];

  for(int i = 0; i<emailAdressStrings.lenth; i++) {

    result[i] = new InternetAddress(emailAddressStrings[i]);
  }

  return result;
}
```
In der doPost-Methode des Servlets, dass in der form-Action angesprochen wird, kannst Du die Methode dann so aufrufen:

```
String genehmigerEmail = request.getAttribute("genehmiger_email");
Address[] toAdresses = parseEmailAdresses(genehmigerEmail);
```


----------



## Jorous (15. Nov 2012)

Vielen Dank,

beim zweiten durchlesen meiner Funktion ist mir aufgefallen, dass ich das Array an dieser Stelle gar nicht brauche, wenn ich nur eine Adresse übergebe. Ich hab das Array aus meiner Funktion rausgeschmissen und den Parameter einfach auslesen lassen mit 


```
request.getParameter("genehmiger_mail")
```

Trotzdem danke und schönen Tag noch.


----------

