世界
我想更改所有页面的p:growl“life”属性的默认值,而不将此属性添加到组件。
编辑:
<p:growl life="#{managedBean.time}" />
我想同时为所有growl组件应用(更新),而不为每个组件添加属性
答案 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);
}