5

如何使文本默认从右向左对齐(p:editor)。

目前使用 primefaces 3.0.M2-SNAPSHOT。现在不能更新到新版本?

这是阿拉伯语版本的应用程序所必需的。

谢谢

4

3 回答 3

3

在 web.xml 中添加一个条目,例如

<context-param>
    <param-name>primefaces.DIR</param-name>
    <param-value>RTL</param-value>
</context-param>

然后默认情况下,任何 primefaces 组件都会从右到左渲染文本

参考:http ://blog.primefaces.org/?p=2283

于 2013-01-06T19:24:58.897 回答
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}" ..... />
于 2013-02-09T23:23:12.600 回答
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>
于 2013-12-30T08:17:20.900 回答