我有一个JSF页面,用户输入了几个信息。当用户提交数据时,它首先被验证,如果提交成功,用户也应该获得FacesMessage。
我有一个菜单栏的自定义控件,我在每一页都使用它:
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:panel>
<xp:this.facets>
<!-- Some Logos and stuff -->
<xp:panel xp:key="contentFacet">
<xp:callback facetName="contentContainer"></xp:callback>
</xp:panel>
</xp:this.facets>
</xp:panel>
</xp:view>
然后按以下方式使用菜单:
<xc:cc_layout_main><xp:this.facets>
<xp:panel xp:key="contentContainer">
<xc:cc_content_form></xc:cc_content_form></xp:panel>
</xp:this.facets></xc:cc_layout_main>
cc_content_form使用此控件:
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:messages id="messages1" styleClass="test" layout="table"
errorClass="alert-warning" fatalClass="alert-danger"
infoClass="alert-info" warnClass="alert-warning" showDetail="true"
showSummary="true" disableTheme="false" globalOnly="false">
</xp:messages>
<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[
// Validierungs Nachrichten entfernen
var delayMs = 750;
$('body')
.on('click', function(event){
x$('#{id:messages1}').delay(delayMs).fadeOut(500);
})
.on('keyup', function(event){
x$('#{id:messages1}').delay(delayMs).fadeOut(500);
})
]]></xp:this.value>
</xp:scriptBlock>
</xp:view>
在提交函数中,我在验证函数中使用它:
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "error", "some error"));
此调用包含在带有单线模式的辅助类方法中,因此可以在所有页面中使用它。对于验证消息,在返回actionResult&#34; xsp-success&#34;之前,这在valdiation方法中工作得很好但更进一步。这是行不通的。没有消息显示,我没有任何异常。
有人可以提供帮助吗?
答案 0 :(得分:0)
原来我弄乱了NavigationRules ......它工作得很好