У меня есть кнопка на моей странице.пользовательское сообщение, выпущенное из bean-метода
<h:commandButton id="makeSearch" value="#{msg.makeWycena}">
<f:ajax event="click" render="@all" listener="#{searchBean.makeSearch()}"/>
</h:commandButton>
makeSearch()
метод сначала проверяет значение из базы данных, и если это значение null
он выполняет определенную логику. Но когда значение не null
, то я хотел бы отобразить сообщение об ошибке.
Я подумал о том, чтобы сделать <h:outputtext rendered = {not null XXX}/>
и по этой причине сделать специальную переменную XXX, но я уверен, что это можно сделать с помощью простой формы <h:message />
, но не могу найти.
Мой код выглядит следующим образом:
else {
FacesContext fc = FacesContext.getCurrentInstance();
fc.addMessage(null , new FacesMessage("XXXXXXXX"));
return null;
}
Я хочу, чтобы сообщение XXXXXXXXX, которое будет отображаться в:
<h:message for="makeSearch" globalOnly="true" style="color:red;margin:8px;"/>
Следующая кнопка я отправил раньше, чтобы командовать. Сейчас он оказывается в нижней части страницы
После нескольких изменений мой код выглядит как это прямо сейчас: Код
<h:form id="detailsForm" prependId="false">
<h:commandButton id="makeSearch" value="#{msg.makeWycena}">
<f:ajax event="click" render="@all" listener="#{searchBean.makeSearch()}"/>
</h:commandButton>
<h:message for="makeSearch" id ="makeSearchError" style="color:red;margin:6px;left-margin:10px;"/>
и фасоли:
else {FacesContext.getCurrentInstance().addMessage("detailsForm:makeSearchError" ,
new FacesMessage("XXXXXXXXXXXX")); }
, но до сих пор. сообщение не отображается в сообщении h:. Я попробовал также detailForm: makeSeach, и это не помогло
Используйте '' для генерируемых сообщений с сервера вместо текущего ''. –
Как и на моей конкретной странице, у меня есть только одно сообщение для отображения этого подхода, хорошо, я буду использовать этот совет :), но все же хотел бы знать, как это сделать, если у меня будет несколько сообщений об ошибках для отображения в отдельных ящиках сообщений в будущем. –
Из ['FacesContext # addMessage'] (http://docs.oracle.com/cd/E17802_01/j2ee/javaee/javaserverfaces/2.0/docs/api/javax/faces/context/FacesContext.html # addMessage (java.lang.String, javax.faces.application.FacesMessage)) javadoc, первым параметром должен быть идентификатор клиента. Поскольку вы устанавливаете 'null', это означает, что он не обращает внимания на какой-либо компонент, поэтому он перейдет прямо к''. См. Этот Q/A для получения дополнительной информации: http://stackoverflow.com/q/315804/1065197 –