我如何在JSF中使用/创建主题?

时间:2013-11-18 04:18:46

标签: css jsf jsf-2 themes

我有一个表格,类似的东西:

<html>
    <head>
        <!-- Some css file included here -->
    </head>
    <body>

        <!-- Form parameters like action, method omitted  for simplicity-->
        <form>
            <p class="someTextClass">msg[code.text]</p>
            <input class="someInputClass" type="text"/>
            <button class="someButtonClass">msg[code.button]</button>
            <p class="someHelpTextClass">msg[code3.help]</p>
        </form
    </body
</html>

但目前有很多条件声明,如“(condition)?messageOne:messageTwo”和“rendered”属性。但是我想同时切换标签和相关css类中的所有文本(而不是丢失i18n)。我想在一个地方设置一个参数,并根据它自动切换所有的CSS和文本。在JSF中有类似的东西吗?当我学习Spring时,有一些类似主题的东西,JSF中是否有主题模拟?

P.S。如果我的解释中有不清楚的地方请写评论,我会更新问题。

1 个答案:

答案 0 :(得分:0)

您可以升级到JSF 2.2吗? resources and contracts的概念正是您所寻找的。

或者,您可以从辅助bean中获取适当的主题样式:

webapp/
  resources/theme1/css/styles.css
  resources/theme2/css/styles.css


<h:outputStyleSheet library="#{someBean.theme}" name="css/styles.css"/>

由于outputStyleSheet也可以使用EL作为名称,因此您也可以将该代码推送到bean中。

对于pageTemplate本身,您应该考虑从bean中获取该信息。

希望有所帮助。