цвет компонента Apache Wicket - PullRequest
       0

цвет компонента Apache Wicket

1 голос
/ 23 сентября 2011

У меня есть следующий код:

<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">, но это не имело никакого значения. Спасибо!

Ответы [ 3 ]

8 голосов
/ 23 сентября 2011

В других ответах указано, как можно добавить атрибут style="..." в шаблон HTML . Если, с другой стороны, вы не хотите делать это статически (скажем, вам нужно рассчитать цвет, а затем добавить его к компоненту), вам следует добавить AttributeModifier к Компоненту 1 .

Пример (не проверено):

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) имеет не , был вызван. Это удалит оберточный элемент <span> из вывода.

3 голосов
/ 23 сентября 2011

Из W3Schools :

Тег устарел в HTML 4 и удален из HTML5.
Консорциум World Wide Web (W3C) удалил тег из его рекомендации. В HTML 4 должны использоваться таблицы стилей (CSS) определить макет и свойства отображения для многих элементов HTML.

Вместо этого используйте стили, даже если это встроенный стиль:

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

Если вы используете Wicket, вам нужно убедиться, что вы не используете setRenderBodyOnly(true) для Компонента с идентификатором service.state, так как это лишит тег <span> стиля.

0 голосов
/ 23 сентября 2011
<span wicket:id="service.state" style="color:red"></span>

или лучше использовать правильные классы CSS

...