在我的项目中,要求当我们将语言从英语改为阿拉伯语时,所有布局都将以从右到左的位置显示。 咆哮消息工作正常,当我没有使用常见的布局,但当我在我的页面的共同布局中添加此东西,然后它仍然只显示右侧..
源代码:
<!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>
答案 0 :(得分:2)
构建视图时, <ui:composition>
之外的任何 忽略。
在commonLayout.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
选择器)< / em>的