2013-01-06 32 views
5

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

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

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

感谢

回答

3

添加像

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

在web.xml中的条目,然后在默认情况下任何primefaces组件将呈现来自右侧的文本向左

REF:http://blog.primefaces.org/?p=2283

+1

我的要求是只对组件而不是整个范围。 – techie2k

2

并非所有PrimeFaces组件都具有“dir”属性,并且由于您未使用3.5版,因此无法使用应用程序作用域DIR参数之三。所以基本上,你有两个选择:

  • 动态地将一个棘手的CSS类应用到没有DIR属性的组件。类似于

    .rtlclass float:right; /*等*/ }

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}" ..... /> 
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>