PrimeFaces编辑

时间:2013-01-06 19:17:43

标签: jquery jquery-ui primefaces

默认情况下如何使文本从右向左对齐(p:编辑器)。

目前使用的是primefaces 3.0.M2-SNAPSHOT。现在无法更新到更新的版本?

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

由于

3 个答案:

答案 0 :(得分: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

答案 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>