如何在Wicket中用多个值替换属性的属性值?

ale*_*exD 2 wicket

我的class属性有两个CSS类值.HTML开头像这样:

<input type="button" wicket:id="rowButton" class="jelly-button greenGradient"/>
Run Code Online (Sandbox Code Playgroud)

我想动态地改变它:

<input type="button" wicket:id="rowButton" class="jelly-button redGradient"/>
Run Code Online (Sandbox Code Playgroud)

目前我这样做:

component.add(new SimpleAttributeModifier("class","jelly-button redGradient"));

Wicket最好的办法是什么?必须有比我上面所做的更"正确"的方式.

Geo*_*edy 7

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

Model<String> gradientModel = new Model<String>("greenGradient");
Run Code Online (Sandbox Code Playgroud)

...

component.add(AttributeModifier.append("class", gradientModel));
Run Code Online (Sandbox Code Playgroud)

在标记中只有

<input type="button" wicket:id="rowButton" class="jelly-button"/>
Run Code Online (Sandbox Code Playgroud)

然后是时候改变渐变使用了

gradientModel.setObject("redGradient");
Run Code Online (Sandbox Code Playgroud)

要么

gradientModel.setObject("greenGradient");
Run Code Online (Sandbox Code Playgroud)