1

私のプロジェクトでは、言語を英語からアラビア語に変更すると、すべてのレイアウトが右から左の位置に表示されるという要件があります。一般的なレイアウトを使用しなかった場合はうなりメッセージが正常に機能しますが、このことをページの一般的なレイアウトに追加すると、まだ右側のみが表示されます..

ソースコード:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core" 
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Facelet Title</title>
        <style type="text/css">
            .ui-growl{
                #{msg['msg']}:20px;
            }
        </style>
    </h:head>

    <body>

    <ui:composition template="/home/template/common1/commonLayout.xhtml">
        <ui:define name="content">

        <h:form id="myform">


            <p:growl id="msgs" sticky="true" autoUpdate="true" />
            <f:event listener="#{localeControllerBean.islang}" type="preRenderView" />
            <p:outputLabel for="sname" value="#{msg['welcome.jsf']}"
                            styleClass="label" />
                        <p:inputText id="sname" value="#{sponsorBean.sponsor_name}"
                            required="true" requiredMessage="#{msg['welcome.jsf']}"
                            styleClass="input" />
                            <p:commandButton id="submit" value="Save" ajax="false"
                        action="#{sponsorBean.save}" style="margin-bottom:50px;"
                        update="msgs" />
        </h:form>
        </ui:define>
        </ui:composition>
    </body>
</html>
4

1 に答える 1

2

ビューの構築中は、外部の もの<ui:composition>すべて無視されます。

マスター テンプレートでは、新しいinsidecommonLayout.xhtmlを追加する必要があります。<ui:insert><h:head>

<h:head>
    ...
    <ui:insert name="head" />
</h:head>

次に<ui:composition>、テンプレート クライアント内で定義します。

<ui:composition template="...">
    <ui:define name="head">
        <style>.ui-growl{ #{msg['msg']}: 20px; }</style>
    </ui:define>

    <ui:define name="content">
        ...
    </ui:define>
</ui:composition>

(ちなみに、#{msg['msg']}自己文書化は絶対にありません。たとえばセレクター<html dir="#{direction}">を使用できるように、私自身もむしろ使用したいと思います)html[dir='rtl'] .ui.growl

以下も参照してください。

于 2013-06-27T13:15:50.663 に答える