【问题标题】:How to use f:loadbundle with facelets如何使用 f:loadbundle 和 facelets
【发布时间】:2011-11-23 13:24:33
【问题描述】:

在使用 jsp 作为 JSF 应用程序的视图描述语言时使用 f:loadbundle 非常简单。

我想知道在使用 facelets 时将这个 f:loadbundle 放在哪里

【问题讨论】:

    标签: jsf facelets jsf-1.2


    【解决方案1】:

    除了taglibs的声明方式之外,它真的和JSP没有什么不同。

    <!DOCTYPE html>
    <html lang="en"
        xmlns="http://www.w3.org/1999/xhtml"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:ui="http://java.sun.com/jsf/facelets">
        <f:loadBundle basename="com.example.i18n.text" var="text" />
        <head>
            <title>Facelets page</title>
        </head>
        <body>
            <h:outputText value="#{text['some.key']}" />
        </body>  
    </html>
    

    这也适用于所有其他标签/组件。唯一的主要区别是您需要在 XML 命名空间中声明 taglib,而不是在老式 JSP &lt;%@taglib %&gt; thingy 中声明。

    【讨论】:

    • 感谢 BalusC 的回复。我可以在 ui:composition 标签之外声明 吗?
    • 没有。 &lt;ui:composition&gt; 之外的任何内容都将被忽略。只需在里面声明即可。
    • 所以它也属于f:head之外?在这个问题上看到我的base.tpl:stackoverflow.com/questions/45537018/…
    • Still for a f:viewParam id="fooId" name="fooId" required="true" requiredMessage="#{bundle.PARAMETER_FOO_ID_IS_REQUIRED}" my p:message for="fooId" 仍然没有显示任何消息,但呈现标签(意味着我看到一个空的警报框)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2011-03-11
    相关资源
    最近更新 更多