2011-09-23 45 views
1

的我有以下代码:颜色阿帕奇检票口组件

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" 
    xml:lang="en" lang="en"> 
    <body> 
    <wicket:panel> 
     <div wicket:id="serviceListContainer"> 
     <table> 
      <tr wicket:id="serviceListView"> 
      <td> 
       <span wicket:id="service.name"></span> 
      </td> 
      <td> 
       <span wicket:id="service.state"></span> <!-- I WANT TO COLOR THIS PART IN RED! --> 
      </td> 
      </tr> 
     </table> 
     </div> 
    </wicket:panel> 
    </body> 
</html> 

我如何可以改变输出文本,它将取代“service.state”的颜色?我尝试了<font color="red">,但没有任何区别。 谢谢!

回答

8

其他的答案表明如何在HTML模板中添加style="..."属性。如果,另一方面,你不希望静态地做到这一点(比如,你需要计算的颜色,然后将其添加到组件),你应该addAttributeModifier到组件。

例(未经测试):

Label l = new Label("service.state", ...); 
IModel<String> colorModel = new AbstractReadOnlyModel<String>() { 
    public String getObject() { 
     return "color: red;"; // Dummy example 
    } 
}; // Some model, holding a string representation of a CSS style attribute (e.g., "color: ...;") based on some date and/or calculation 
l.add(new AttributeModifier("style", true, colorModel); 

你甚至可以使用SimpleAttributeModifier如果你不需要基于拉模型:

Label l = new Label("service.state", ...); 
String styleAttr = "color: red;"; 
l.add(new SimpleAttributeModifier("style", styleAttr)); 

1)假设setRenderBodyOnly(true)已有而不是已被ca LLED。这将从输出中移除包装<span>元素。

+0

AttributeModifier似乎被弃用(链路是404),并且SimpleAttributeModifier也是404链接。 –

+0

是的,很好。当时Wicket 1.4是当前的:) – jensgram

0
<span wicket:id="service.state" style="color:red"></span> 

或更好的是使用适当的CSS类

3

W3Schools

的<字体>标签以HTML 4过时,从HTML5除去。
万维网联盟(W3C)已将其建议从 中移除。在HTML 4中,应该使用样式表(CSS) 来定义许多HTML元素的布局和显示属性。

使用的风格,哪怕是内联样式,而不是:

<span style="color:red">this is red text</span> 

如果你使用的检票你要确保你不是在用成分与setRenderBodyOnly(true) ID service.state ,因为这会将样式剥离<span>标签。