如何使文本默认从右向左对齐(p:editor)。
目前使用 primefaces 3.0.M2-SNAPSHOT。现在不能更新到新版本?
这是阿拉伯语版本的应用程序所必需的。
谢谢
如何使文本默认从右向左对齐(p:editor)。
目前使用 primefaces 3.0.M2-SNAPSHOT。现在不能更新到新版本?
这是阿拉伯语版本的应用程序所必需的。
谢谢
在 web.xml 中添加一个条目,例如
<context-param>
<param-name>primefaces.DIR</param-name>
<param-value>RTL</param-value>
</context-param>
然后默认情况下,任何 primefaces 组件都会从右到左渲染文本
并非所有 PrimeFaces 组件都具有属性“dir”,并且由于您使用的不是 3.5 版,因此您不能使用应用程序范围 DIR 参数。所以基本上,你有两个选择:
将棘手的 CSS 类动态应用于没有 DIR 属性的组件。就像是
.rtlclass { 浮动:对;/* ETC */ }
或者
dirClass 属性根据视图语言环境获取其值。如果是阿拉伯语,则 getter 返回“rtlClass”,否则返回“ltrCLass”。
如果碰巧 PrimeFaces 组件具有 DIR 属性,请在 bean 中编写如下内容:
public class FacesBean {
private String direction = "";
public FacesBean(){}
// Getter & setter
public String getDirection() {
if (FacesContext.getCurrentInstance().getViewRoot().getLocale()
.getLanguage() == "ar") {
direction = "RTL";
} else {
direction = "LTR";
}
return direction;
}
}
并在您的 xhtml 文件中:
<p:component dir="#{facesBean.direction}" ..... />
我这样做的方式很糟糕,但它对我有用:
<h:form id="form">
<p:editor id="content"/>
<script type="text/javascript" >
jQuery(document).ready(function () {
var myDiv = document.createElement('div');
myDiv.align = 'right';
var myBr = document.createElement('br');
myDiv.appendChild(myBr);
jQuery('#form\\:content').find('iframe').contents().find('body').append(myDiv);
});
</script>
</h:form>