Im HTML-Teil von Formularen werden wieder oid-Attribute verwendet, um
den Code für die Auswertung des Formulars anzugeben und die einzelnen
Komponenten zu identifizieren.
<form oid="eintragen"> Anmerkung: <input type="text" oid="notiz"> <input type="submit" value="Anfügen"> </form>
IOWA bindet das notiz-Feld an das notiz-Attribut der Komponente.
Es zeigt den zum Zeitpunkt des Ladens aktuellen Wert an, andererseits
werden die Eingaben beim Abschicken des Formulars wieder an das Attribut
übergeben. Der angepasste Code sieht folgendermaßen aus:
<%
class Main < Iowa::Component
attr_reader :zeiten
attr_accessor :eintrag
attr_accessor :notiz
def awake
@zeiten = []
end
def time
Time.now
end
def eintragen
@zeiten << {
"zeit" => time,
"notiz" => @notiz
}
end
end
%>
<?
liste {
list = zeiten
item = eintrag
}
?>
<html>
<head><title>Hallo</title></head>
<body>
<h1>Hallo Welt!</h1>
<p>Es ist jetzt <b>@time</b>.</p>
<form oid="eintragen">
<p>Anmerkung: <input type="text" oid="notiz">
<input type="submit" value="Anfügen"></p>
</form>
<p>Die Seite wurde gezeigt um:</p>
<ul oid="liste">
<li>@eintrag.zeit: @eintrag.notiz</li>
</ul>
</body>
</html>
Mehr Informationen zu IOWA gibt es auf Avi Bryants Webseite [IOWA].