默认情况下如何使文本从右向左对齐(p:编辑器)。
目前使用的是primefaces 3.0.M2-SNAPSHOT。现在无法更新到更新的版本?
这是阿拉伯语版应用程序所必需的。
由于
答案 0 :(得分:3)
在web.xml中添加一个条目,如
<context-param>
<param-name>primefaces.DIR</param-name>
<param-value>RTL</param-value>
</context-param>
然后默认情况下,任何primefaces组件都会从右到左呈现文本
答案 1 :(得分:2)
并非所有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}" ..... />
答案 2 :(得分:0)
我这样做的方式很糟糕,但它对我有用:
<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>