【发布时间】:2013-09-06 18:12:19
【问题描述】:
我正在尝试使用属性 autoUpdate 测试 p:growl 和 p:messages,但它不起作用,虽然它是一个非常简单的代码。
我的页面(primes.xhtml):
<h:head/>
<h:body>
<h:form>
<p:messages autoUpdate="true"/>
<p:commandButton action="#{dateBean.testErr}"/>
</h:form>
</h:body>
DateBean 类:
@ManagedBean
public class DateBean {
public String testErr(){
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("test error"));
return null;
}
}
每当我点击命令按钮时,服务器都会给我以下警告:
“警告:有一些未处理的 FacesMessage,这意味着不是每个 FacesMessage 都有机会被渲染。 这些未处理的 FacesMessage 是:- 测试错误”
但是页面中不显示消息,咆哮声也不显示。
【问题讨论】:
-
无法重现 Mojarra 2.1.26 和 PrimeFaces 3.5 的问题。究竟是哪个 JSF impl/version 和 PF 版本? ajax 响应正文包含什么?
-
我正在使用 Myfaces 2.0,该操作应该什么都不做,只是添加一条新消息,以便在添加消息时由 p:messages 或 p:growl 显示。
-
MyFaces 到底是哪个版本? “2.0”只是一个规范版本。是2.0.0吗?这是古代! (差不多 4 岁)目前已经是 2.1.12。您是否尝试过仅将其排除在原因之外?另外你还没有告诉PF版本和ajax响应体。
-
抱歉,忘记指定它是 2.0.2 和 primefaces 3.5 我将尝试更新的实现,看看会发生什么。我不确定 ajax 响应(除了上面的代码进入服务器并运行操作之外,对 ajax 不太了解,因为没有指定要更新的任何内容都没有更新),我认为 autoUpdate 属性将检测到发送了一个 ajax 请求,因此应该更新消息标签)
-
Ajax 响应正文在浏览器的 webdeveloper 工具集的网络监视器中可见(在 Chrome/Firefox/Firebug/IE>=9 中按 F12)
标签: jsf-2 primefaces