<p:messages id="lockMessage"
for="lockMessage"
redisplay="false"
showDetail="true"
autoUpdate="true"
closable="true"/>
<h:form id="form">
<p:remoteCommand name="updateTable" update="dataTable" process="@this"/>
<p:commandButton oncomplete="if(args &&!args.validationFailed) {updateTable();}"
actionListener="#{bean.action}"
value="Save"/>
<p:dataTable id="dataTable"/>
</h:form>
豆 :
@Named
@ViewScoped
public class Bean implements Serializable {
private static final long serialVersionUID = 1L;
public Bean() {}
public void action() {
FacesContext facesContext = FacesContext.getCurrentInstance();
// This is needed somewhere.
Collection<String> renderIds = facesContext.getPartialViewContext().getRenderIds();
renderIds.clear();
renderIds.add("lockMessage");
// Render the message using some conditional check.
FacesMessage message = new FacesMessage();
message.setSeverity(FacesMessage.SEVERITY_ERROR);
message.setSummary("Summary");
message.setDetail("Message");
facesContext.addMessage("lockMessage", message);
}
}
<p:commandButton>
メッセージは非常に短い間表示され、指定されたものをクリックするとすぐに消えます。
oncomplete="if(args &&!args.validationFailed) {updateTable();}"
から を削除すると、メッセージは通常どおり表示されます<p:commandButton>
。
を省略したり、 to に関連付けられ<p:remoteCommand>
た属性を設定したりすることは、他の特定の理由ではできません。autoUpdate
<p:messages>
false
<p:commandButton>
指定されたが押されたときに、メッセージが正常に表示されるようにするにはどうすればよいですか?