[Ajax4JSF] jsf message 不显示的问题
seven0_0
2011-01-24
我现在有一个Backbean中的一个方法,这方法中如果读取数据有错的话,我会用FacesContext.getCurrentInstance().addMessage(null,message)这个信息把错误放进去,然后返回到原来的页面,也就是不跳转,可是h:messages 却不显示错误信息,求解 backbean: public String test(){ ... if(result == null){ FacesMessage message = new FacesMessage( FacesMessage.SEVERITY_ERROR, "","error"); FacesContext.getCurrentInstance().addMessage(null,message); } return "test"; } test.jsp: <f:view> <h:form id="test"> .... <h:messages infoClass="infomsg" errorClass="errormsg" style="text-align:center;"/> ...... </h:form> </f:view> faces-config: ..... <navigation-rule> <from-view-id>*</from-view-id> <navigation-case> <from-outcome>test</from-outcome> <to-view-id>/test.jsp</to-view-id> </navigation-case> </navigation-rule> .....
如果backbean中返回null的话。。能显示 返回到另外的页面,页面源代码能找到这个组件,就是一个空值,不显示任信息 知道的说下,为什么会发生这情况!我的Jsf是1.2的,在tomcat下 |
|
kidneyball
2011-01-25
错误消息是与FacesContext绑定,而不是与某个Message组件绑定的。因此页面跳转时需要清空错误消息,否则如果跳转到另一个页面,页面上也有一个Message组件,岂不是把前一个页面的错误消息显示出来了。既然不跳转,就返回null吧,不要导航到原来的页面。
|
|
seven0_0
2011-01-25
谢谢呀!错误消息是与FacesContext绑定,正中我意,
看起来要好好去看看jsf了 |