2009-08-08 16 views
1

Ich versuche, das Klassenattribut dynamisch zum Body-Tag hinzuzufügen, und ich stieß auf diese Klasse. aber ich kann nicht verstehen, wie man diese Klasse benutzt. Ich habe so etwas in meiner Seite Klasse (oder Panel-Klasse, wie ich mit, dass auch versucht):Wicket: Wie wird die BodyTagAttributeModifier-Klasse verwendet?

add(new BodyTagAttributeModifier("class", "homepage", this)); 

diese kompilieren nicht einmal, sagen, es ist etwas falsch mit dem zweiten Parameter. aber ich denke, String wird automatisch als ein Modell in Wicket, wie die Label-Klasse. Fehle ich hier etwas?

+2

Strings sind nicht automatisch Modelle; Ich nehme an, Sie waren verwirrt von der Konstruktorsyntax für Label. Richtig, es ist 'öffentliches Etikett (java.lang.String id, IModel Modell)' aber Wicket bietet einen Komfort Konstruktor 'öffentliches Etikett (id java.lang.String, java.lang.String label)' , die gerade ruft 'Label (ID, neues Modell (Label))' http://wicket.apache.org/docs/wicket-1.3.2/wicket/apidocs/org/apache/wicket/markup/ html/basic/Label.html # Label (java.lang.String,% 20java.lang.String) – Pops

Antwort

1

Einige Wicket-Komponenten haben diese String-to-model-Verknüpfung (wie Label), aber es ist nicht ein allgemeines Merkmal. Sie müssen Ihre Zeichenfolge manuell in ein Modell konvertieren:

add(new BodyTagAttributeModifier("class", Model.of("homepage"), this)); 
Verwandte Themen