# HTML Taglib - mehrere Submit-Buttons & Internationalisie



## clemson (25. Jan 2006)

Hallo!

Ich entwickle derzeit eine Applikation in Struts, welche unter anderem die Möglichkeit bietet, Mails inklusive Anhang zu versenden (Es sind unbegrenzt viele Anhänge möglich). Das Mailformular ist im Prinzip so aufgebaut, wie bei GMX --> es werden alle Felder angezeigt (An, CC, Betreff, Inhalt und eben auch ein "Durchsuchen"-Feld für die Angabe eines neuen Attachments).

Des weiteren befinden sich auf der Seite zwei Submit-Buttons: einer zum Absenden der Mail, und einer zum Hochladen der Datei, welche im "Durchsuchen"-Feld angegeben wurde.

bis hierher kein Problem - ich möchte das ganze aber internationalisiert lösen, d.h. es soll nicht immer "Absenden" und "Datei hochladen" auf den Buttons "stehen", sondern das ganze je nach Sprache.
Der Rest der Applikation arbeitet hierfür mit der Bean-Taglib (im speziellen mit dem tag "<bean:message key='variable_name' bundle='languages' />"), welche im Prinzip mit RessourceBundles arbeitet (Properties-Datei).

Lange Rede, kurzer Sinn: wie kann ich in meiner JSP angeben, dass (bei Klick auf einen Button) im Falle des versendens der Parameter "action" mit dem Wert "submit" und im Falle des Hochladens der Parameter "action" mit dem Wert "file_upload" mitgeschickt wird??

Im konkreten sieht die JSP so aus:

Hochladen:

```
<html:file property="file" />
<html:submit property="file_upload" titleKey="mailwrite.file_upload" bundle="lang" />
```

Versenden:

```
<html:submit titleKey="mailwrite.send_mail" bundle="lang" property="submit" />
```

gebe ich das ganze so an, dann wird auf der JSP folgendes ausgegeben:

```
<input type="file" name="file" value="">
<input type="submit" name="file_upload" value="Submit" title="Datei hochladen">

<input type="submit" name="submit" value="Submit" title="Abschicken">
```

und auf den Buttons steht "Submit" & "Submit"

ich möchte aber, dass auf den Buttons jeweils "Abschicken" und "Datei hochladen" steht, und bei Klick auf den Button entweder "?action=submit" oder "?action=file_upload" übergeben wird...

wisst ihr was ich meine, und kann mir jemand sagen, wie es funktioniert??


----------



## clemson (25. Jan 2006)

hmm, ich hab hier grad was interessantes gefunden...



> How should multiple button support be handled in Struts? Each button gets submitted with different text, but in order to separate the view from the controller that text should not appear in the Action.


----------



## padde479 (25. Jan 2006)

Bei value muss der Text stehen, der auf den Button zu sehen sein soll.

Bei ?Dein_text sind die Übergabeparameter, die Du beim Formular ausfüllst. Diese werden automatisch an die URL angehängt.


----------



## clemson (25. Jan 2006)

ja, das weiß ich. aber genau da ist das problem, wenn ich an internationalisierung denke: es wird immer der text des buttons in der jeweiligen sprache übermittelt...

aber ich habe das ganze jetzt folgendermaßen gelöst


```
<html:submit property="submit">
     <bean:message key="mailwrite.send_mail" bundle="lang"
</html:submit>

<html:file property="file" />
<html:submit property="file_upload">
     <bean:message key="mailwrite.file_upload" bundle="lang"
</html:submit>
```

jetzt wird der button in der jeweiligen sprache dargestellt. beim drücken eines bestimmten buttons wird die variable - und nur diese variale -, welche im property-attribut angegeben wurde, im request übergeben. dann muss nur noch abgefragt werden, welche variable übergeben wurde, und man hat den gedrückten button...


----------



## clemson (25. Jan 2006)

> Don't forget about the property parameter.
> Artur de Sousa Rocha, Dec 20, 2002  [replies:2]
> The <html:submit> tag has a property parameter. You can "attach" each of the submit buttons to a different property. Then, after submitting only one of these properties will be non-null. You can use this information to find out the user's choice.


----------

