Struts Code Peaces – Element Allgemeines Das <html

Transcrição

Struts Code Peaces – Element Allgemeines Das <html
Struts Code Peaces – <html:select> Element
Es wird das Struts <html:select> Element erläutert und anhand von kleinen Beispielen der
Umgang veranschaulicht.
Allgemeines
Autor:
Sascha Wolski
http://www.laliluna.de/tutorials.html – Tutorials für Struts, EJB, xdoclet und eclipse.
Datum:
15. Februar 2005
Development Tools
Eclipse 3.x
MyEclipse 3.8.x
Application Server
Jboss 3.2.5
Es kann auch Tomcat genutzt werden.
Das <html:select> Element
Das <html:select> Element wird für die Ausgabe eines HTML <select> Elements genutzt. Eine im
Form-Bean definierte Eigenschaft wird dem <html:select> Element zugewiesen, was nachdem
Abschicken des Formular den oder die entsprechenden Werte enthält.
Das <html:select> Element arbeitet in zwei verschiedenen Modis:
•
Auswahl von einem Element
•
Auswahl von meheren Elementen
Folgendes Beispiel zeigt den Quelltext der JSP Datei:
<html:select property="selectedItem">
<html:option value="Maria">Maria</html:option>
<html:option value="Klaus">Klaus</html:option>
</html:select>
Folgender HTML Quelltext wird zur Laufzeit von Struts ausgegeben:
<select name="selectedItem">
<option value="1">Marie</option>
<option value="2">Klaus</option>
</select>
Attribute des <html:select> Elements
Die wichtigsten Attribute werden kurz erläutert. Die vollständige Liste aller Attribute findet man in
der API zu der HTML Tag Biliothek von Struts.
Name
disabled
multiple
name
property
size
Beschreibung
Deaktiviert das Element (true / false)
Wenn true kann eine mehrfach Auswahl von Elementen vorgenommen werden.
Name des Bean welches die Eigenschaft enthält, die dem Element zugewiesen wird.
Name der Eigenschaft die nachdem Abschicken den ausgewählt Wert enthält.
Anzahl an Elementen die in der Auswahl sichtbar sein sollen
Name
value
Beschreibung
Standardwert, wenn value mit dem value eines Elementes übereinstimmt wird dieses als
selektiert markiert.
Verwenden des <html:select> Elements
Erstelle ein neues Struts Projekt um die Verwendung des <html:select> Elements zu
veranschaulichen.
Erstellen eines neuen FormBeans
Erstelle eine ActionForm Klasse ExampleForm im Package de.laliluna.tutorial.select.form.
Definiere eine Eigenschaft selectedItem vom Typ String, diese wird unserem <html:select>
Element zugewiesen und enthält nachdem Abschicken des Formulars den Wert des ausgewählten
Elements.
Eine zweite Eigenschaft, ein Array, selectedItems vom Typ String, diese wird später bei der
mehrfach Auswahl eine Liste von Werten der ausgewählten Elemente enthalten.
Folgender Quelltext zeigt die ActionForm Klasse
public class ExampleForm extends ActionForm {
//property for single selection
private String selectedItem;
//property for multiple selection
private String[] selectedItems;
public String getSelectedItem() {
return selectedItem;
}
public void setSelectedItem(String selectedItem) {
this.selectedItem = selectedItem;
}
public String[] getSelectedItems() {
return selectedItems;
}
public void setSelectedItems(String[] selectedItems) {
this.selectedItems = selectedItems;
}
}
/**
* Reset method
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping,
HttpServletRequest request) {
//resetting properties
this.selectedItem = new String();
this.selectedItems = new String[0];
}
Erstellen einer neues Action Klasse
Lege eine neue Action Klasse ExampleAction im Package de.laliluna.tutorial.select.action an.
Die beiden Eigenschaften sollen zur Kontrolle mit System.out.println() ausgegeben werden.
Der folgende Quelltext zeigt die Action Klasse:
public class ExampleAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
ExampleForm exampleForm = (ExampleForm) form;
//debug output of selectedItem property
System.out.println("Selected item = " +
exampleForm.getSelectedItem());
//debug output of the selectedItems property
for(int i=0;i<exampleForm.getSelectedItems().length;i++){
System.out.println("Multiple item (" + i +") = " +
exampleForm.getSelectedItems()[i]);
}
}
}
return mapping.findForward("success");
Erstellen der struts-config.xml
Öffne im Anschluss daran die struts-config.xml und definiere das FormBean und das
ActionMapping.
<struts-config>
<form-beans>
<form-bean name="exampleForm"
type="de.laliluna.tutorial.select.form.ExampleForm" />
</form-beans>
<action-mappings>
<action
name="exampleForm"
path="/example"
scope="request"
type="de.laliluna.tutorial.select.action.ExampleAction">
<forward name="success" path="/form/example.jsp" />
</action>
</action-mappings>
</struts-config>
Erstellen der JSP Datei
Erstelle im Verzeichnis /WebRoot/form/ eine JSP Datei example.jsp.
Öffne die JSP Datei example.jsp und füge folgenden Quelltext hinzu.
<%@
<%@
<%@
<%@
page language="java"%>
taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%>
<html>
<head>
<title>example.jsp</title>
</head>
<body>
<html:form action="/example">
.... sample code ...
</html:form>
</body>
</html>
Füge innerhalb des <html:form> Elements das erste Beispiel ein.
Beispiel 1
Im Beispiel 1 wird eine normale SelectBox ausgegeben. Der Benutzer kann hier ein Element
auswählen und der Wert des Elementes wird, nachdem das Formular abgeschickt wurde, in der
Eigenschaft selectedItem des Form-Beans gespeichert und kann danach in der Action Klasse
ausgegeben werden. Das Attribut property weisst dabei auf die Eigenschaft selectedItem des
Form-Beans.
<h4>Single selection with the &lt;html:select&gt; Tag</h4>
<html:select property="selectedItem">
<html:option value="Maria">Maria</html:option>
<html:option value="Peter">Peter</html:option>
<html:option value="Klaus">Klaus</html:option>
</html:select>
<html:submit/>
Beispiel 2
Beispiel zwei zeigt die Verwendung des Attributs multiple, um eine mehrfach Auswahl von
Elementen vorzunehmen. Dabei werden die Werte der ausgewählten Elemente in dem Array vom
Typ String selectedItems des Form-Beans gespeichert. Das Attribut property weisst dabei auf die
Eigenschaft selectedItems des Form-Beans.
<h4>Multiple selection with the &lt;html:select&gt; Tag</h4>
<html:select property="selectedItems" multiple="true" size="3">
<html:option value="Maria">Maria</html:option>
<html:option value="Peter">Peter</html:option>
<html:option value="Klaus">Klaus</html:option>
</html:select>
<html:submit/>
Das Projekt kann jetzt getestet werden. Dazu wird eine Jboss oder Tomcat Installation
vorausgesetzt. Rufe das Projekt über folgende URL auf.
http://localhost:8080/OptionsTag/example.do