我的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最好的办法是什么?必须有比我上面所做的更"正确"的方式.
您可以使用带有从模型中检索的文本的属性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)