我尝试在用户尝试删除某些内容时进行简单的对话框提醒。但我的问题在于PrimeFaces。响应内容与我想要显示的消息一样是500错误,但它没有显示消息,对话框显示为空。
这是我的支持bean的代码:
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error!", "No se ha podido eliminar el periodo"));
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
HttpServletResponse response = (HttpServletResponse) context.getResponse();
response.setStatus(500);
这是命令按钮:
<p:commandButton value="Eliminar"
action="#{cicloEscolarWiz.doConfirmarEliminarPeriodoLectivo}"
ajax="true"
onerror="messages.show();"
update=":dlgMessages"/>
这是我的对话:
<p:dialog id="dlgMessages"
showEffect="explode"
closable="true"
header="Mensajes"
widgetVar="messages"
modal="true"
style="font-size: 12px;">
<h:panelGroup id="pnlGrpMessages">
<p:panel>
<h:panelGrid columns="1" cellpadding="0" cellspacing="0">
<p:messages id="deletePeriodoLectivoMessages"
showDetail="true"
autoUpdate="true"
closable="true" />
</h:panelGrid>
</p:panel>
<p:spacer height="10"/>
<p:separator />
</h:panelGroup>
</p:dialog>
所以我想要实现的是当我点击命令按钮发出500错误的响应时,对话框必须出现并显示为空,没有消息。
答案 0 :(得分:0)
只需将它放在页面顶部,使用样式进行定位。
<p:panel styleClass="message" >
<p:messages styleClass="message" showDetail="true" autoUpdate="true" closable="true" />
</p:panel>
在doConfirmarEliminarPeriodoLectivo方法中,在发生错误时设置消息
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error!", "No se ha podido eliminar el periodo"));
和您的commandButton
<p:commandButton value="Eliminar"
action="#{cicloEscolarWiz.doConfirmarEliminarPeriodoLectivo}" />