我正在考虑以<h:messages>
更好的方式使用,如下所示:
<h:panelGroup rendered="#{not empty facesContext.getMessages}">
<hr/>
<h3>Please inform us about:</h3>
<h:messages globalOnly="true" escape="false" />
</h:panelGroup>
这个想法是以不同的方式向用户展示信息,具有更多的风格。那可能吗 ?
它们FacesContext#getMessageList()
在 JSF API 中可用,因此#{facesContext.messageList}
在 EL 中可用。
如果您想检查是否有任何消息:
<h:panelGroup ... rendered="#{not empty facesContext.messageList}">
或者,如果您想检查是否有任何全局消息:
<h:panelGroup ... rendered="#{not empty facesContext.getMessageList(null)}">
你可以试试jNotify。这是我的应用程序中的一些代码。它需要重新加载页面以显示消息。每条消息都应单独出现。它使用 jNotify 2.1 插件和 jQuery 1.5.1。我希望这有帮助
<h:messages styleClass="zewError"
showDetail="false"
globalOnly="false"
infoClass="infoMes"
errorClass="errorMes" />
javascript
$(document).ready(
function()
{
$('.infoMes').each(
function(){
jSuccess(''+$(this).html()), //add <h3>Please inform us about:</h3> here
{
autoHide : false, // added in v2.0
clickOverlay : true, // added in v2.0
MinWidth : 250,
TimeShown : 3000,
ShowTimeEffect : 200,
HideTimeEffect : 200,
LongTrip :20,
HorizontalPosition : 'left',
VerticalPosition : 'bottom',
ShowOverlay : true,
ColorOverlay : '#000',
OpacityOverlay : 0.3,
onClosed : function(){ // added in v2.0
},
onCompleted : function(){ // added in v2.0
}
}
});
$('.errorMes').each(
function(){
jError(''+$(this).html()),
{
autoHide : false, // added in v2.0
clickOverlay : true, // added in v2.0
MinWidth : 250,
TimeShown : 3000,
ShowTimeEffect : 200,
HideTimeEffect : 200,
LongTrip :20,
HorizontalPosition : 'left',
VerticalPosition : 'bottom',
ShowOverlay : true,
ColorOverlay : '#000',
OpacityOverlay : 0.3,
onClosed : function(){ // added in v2.0
},
onCompleted : function(){ // added in v2.0
}
}
});
$('.zewError').remove();
}
);