更改 p:growl 属性 "life" 默认值

Change p:growl attribute "life" default value

世界

我想更改所有页面的 p:growl "life" 属性的默认值,而不将此属性添加到组件。

编辑:

<p:growl life="#{managedBean.time}" />

我想同时为所有 growl 组件应用(更新)而不为每个组件添加属性

终于找到了解决方法。

我会 copy/paste Growl.java 从包 org.primefaces.component.growl 到我的项目中创建的同名包。 我将 getLife() 方法(第 93 行)修改为:

public int getLife() {
    return (java.lang.Integer) getStateHelper().eval(PropertyKeys.life, 10000);
}

我将 6000 替换为 10000(毫秒)作为新的默认值,相当于 10 秒。

您还可以在 web.xml 中定义上下文参数为:

<context-param>
  <description>The default life time for the growl primefaces component</description>
  <param-name>primefaces.GROWL_LIFE</param-name>
  <param-value>10000</param-value>
</context-param>

并且该方法将实现为:

public int getLife() {
        ServletContext servletContext = (ServletContext) 
                FacesContext.getCurrentInstance().getExternalContext().getContext();            
        int life = Integer.parseInt(servletContext.getInitParameter("primefaces.GROWL_LIFE"));
        return (java.lang.Integer) getStateHelper().eval(PropertyKeys.life, life);
}