2013-01-06 123 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>