【问题标题】:PrimeFaces 3.5 parameter.DIR dynamicallyPrimeFaces 3.5 参数.DIR 动态
【发布时间】:2013-02-09 23:39:22
【问题描述】:

为了使 PrimeFaces 3.5 中的新 RTL 支持动态工作,我在 web.xml 中附加了以下内容:

<context-param>
      <param-name>primefaces.DIR</param-name>
      <param-value>#{facesBean.direction}</param-value>
   </context-param>

如您所见,参数值是一个 EL 表达式,从 bean 属性评估:方向:

    private String direction = "ltr";
    //......

    public String getDirection() {
          if (FacesContext.getCurrentInstance().getViewRoot().getLocale().getLanguage() == "ar") {
             direction = "rtl";
          } else {
             direction = "ltr";
          }
          return direction;


}

但这不起作用(我太天真了,不敢相信它可以以这种简单的方式工作,因为 web.xml 的加载方式与 xhtml 文件的加载方式不同......)

如果我明确告诉例如 ACCORDION 对方向值做出反应,它成功(如果语言环境更改为 ar,dir 接收 rtl 值,如果更改为 fr 或 en, dir 属性接收的值为 ltr):

<p:accordionPanel dir="#{facesBean.direction}" id="accordion_services" dynamic="true" cache="true"
                                  style="text-align: justify;" >
                    <p:tab title="#{i18n.seep}">
                        <h:panelGrid columns="2" cellpadding="10">
<!-- Remainder of code here ...... -->

我可以将后一种解决方案应用于每个具有 DIR 属性的 PrimeFaces 组件,但这会产生反作用并且会消耗大量时间。 应用范围 DIR 参数是理想的解决方案,并声称它支持 EL 表达式。所以我有兴趣让它发挥作用。

有什么线索吗?

谢谢。

JBoss AS 7.1 莫哈拉 2.1 PrimeFaces 3.5 最新的 Firefox/Chrome


参考:来自 PrimeFaces 3.5 用户指南的第 491 页:

*全局配置

使用 primefaces.DIR 全局设置来 rtl 指示 PrimeFaces RTL 感知组件,如数据表、手风琴、tabview、对话框、树以 RTL 模式呈现。*

`<context-param>     

<param-name>primefaces.DIR</param-name>

<param-value>rtl</param-value> 

</context-param>` 

参数值也可以是动态值的EL表达式。在即将发布的 PrimeFaces 版本中,更多组件将获得内置 RTL 支持。在那之前,如果您使用的组件不提供它,那么在您的应用程序中覆盖 css 和 javascript 将是解决方案。 491

【问题讨论】:

  • 你解决这个问题了吗?
  • @MahmoudSaleh 不是真的! WEB.XML 中的 DIRECTIONN 是在运行时加载的!不是动态的!所以就目前而言,我只是使用每个组件的“dir”属性,它从方法 public String getDirection(){} 中检索其值。我在 PrimeFaces 论坛上发布了这个问题,但几个月以来没有答案!

标签: jsf jakarta-ee primefaces


【解决方案1】:

RTL 目前不支持 web.xml 中的 EL(我使用的是 PF 3.5) 我为 PF 团队创建了一个feature request

我在PF论坛再次发布了这个问题,我得到了答案here

另见:

using JSF EL expression inside web.xml

更新 它已修复,将在即将推出的 Primefaces 4.1 中提供

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    相关资源
    最近更新 更多