Ich bin derzeit in einer Situation, in der ich die MarkupWriter
verwenden muss, um ein Kontrollkästchen anstelle von .tml
zu erstellen. Aber das ist in einer Komponente und ich möchte den Wert des Kontrollkästchens an den booleschen Wert des Elternelements binden. Im Wesentlichen ist es folgende:Bindung von Komponenten durch MarkupWriter - Tapestry
Komponente
public class InnerComponent {
@Parameter
private boolean booleanValue;
void afterRender(final MarkupWriter writer) {
writer.element("input", "type", "checkbox");
writer.end();
}
}
Berufung Seite
public class OuterPage {
@Property
private boolean checkboxValue;
@InjectComponent
private Zone booleanZone;
Object onDisplayBoolean() {
return booleanZone.getBody();
}
}
Mit .tml
<html t:type="layout" title="testProject Index" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd">
<t:InnerComponent booleanValue='checkboxValue'/><br/>
<t:eventlink event='displayBoolean' zone='booleanZone'>Update</t:eventlink>
<t:zone t:id='booleanZone' id='booleanZone'>
${checkboxValue}
</t:zone>
</html>
Die Komponente MarkupWriter
schreibt gerade ein einfaches Kontrollkästchen aus. Es erhält aber auch den booleschen Wert als Parameter. Wie würde ich den booleschen Parameter an die Checkbox MarkupWriter
binden?
In diesem einfachen Beispiel sollte die Überprüfung des Kontrollkästchens und dann die Aktualisierung der Zone
durch die EventLink
den aktualisierten Wert der checkboxValue boolean
des übergeordneten Elements anzeigen.