更改p:growl属性“life”默认值

时间:2017-03-27 11:47:59

标签: jquery-ui primefaces jsf-2.2

世界

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

编辑:

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

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

1 个答案:

答案 0 :(得分:0)

最后,我找到了解决方案。

我将包 org.primefaces.component.growl 中的Growl.java复制/粘贴到我的项目中,并创建一个具有相同名称的包。 我将getLife()方法(第93行)修改为:

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

我将 6000 替换为 10000 (ms),相当于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);
}