【问题标题】:CSS theme system in WicketWicket 中的 CSS 主题系统
【发布时间】:2012-04-09 05:05:04
【问题描述】:

我正在开发一个包含许多不同组件的 Wicket 1.5 Web 应用程序,并且我有兴趣让用户在不同的主题之间进行选择(这意味着更改某些组件的 CSS 样式)。因此,我将以某种方式将所选主题与用户会话相关联。

我的问题是,在 Wicket 中执行此操作的最佳方式是什么?

现在我的组件如下所示:

public class SingleLayout extends Panel {

    public static final CssResourceReference CSS = new CssResourceReference(SingleLayout.class, "SingleLayout.css");

    public SingleLayout(...) {
        super(...);
    }

    protected CssResourceReference getCssResourceReference() {
        return CSS;
    }

    @Override
    public void renderHead(IHeaderResponse response) {
        super.renderHead(response);
        response.renderCSSReference(getCssResourceReference());
    }

}

我理想的“主题系统”解决方案是:

  • 如果当前主题中未定义此组件的 CSS,则组件将具有默认工作的 CSS。
  • 这些组件也可以在没有此主题系统的其他应用程序中工作。

【问题讨论】:

    标签: wicket


    【解决方案1】:

    我自己没有这样做,但我建议您查看 Wicket 中的 Session。在 Javadoc 中,它解释了资源加载。搜索算法的一部分是从用户会话中获得的样式。

    它背后的想法是,您为每种样式提供一个 css(您称之为主题)。包含对标准主题的回退。

    希望对您有所帮助。 伯特

    【讨论】:

    • 好的,谢谢伯特。我将仔细研究资源加载算法,并尝试找出一个不错的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    相关资源
    最近更新 更多