2012-09-11 39 views
2

我的类属性有两个CSS类的值。该HTML开始时是这样的:如何使用Wicket中的多个值替换属性的属性值?

<input type="button" wicket:id="rowButton" class="jelly-button greenGradient"/> 

我要动态地将其改成这样:

<input type="button" wicket:id="rowButton" class="jelly-button redGradient"/> 

目前,我这样做:

component.add(新SimpleAttributeModifier( “class”,“jelly-button redGradient”));

在Wicket中这样做的最好方法是什么?必须有一个比我上面所做的更合适的方法来做到这一点。

+3

到底是什么,你所期望的行为/应该如何调用该方法是什么样子?顺便说一句,你应该使用'AttributeModifier.replace'作为'SimpleAttributeModifier'在Wicket 1.5中已被弃用,并在Wicket 6.0中被删除。 –

回答

7

您可以使用属性appender和从模型中检索的文本,而不是使用固定文本的属性修饰符。要更改类,只需更改模型的值。例如:

Model<String> gradientModel = new Model<String>("greenGradient"); 

...

component.add(AttributeModifier.append("class", gradientModel)); 
在标记

只是

<input type="button" wicket:id="rowButton" class="jelly-button"/> 

然后,当是时候改变渐变使用

gradientModel.setObject("redGradient"); 

gradientModel.setObject("greenGradient");