我有一个JSF页面(使用MyFaces 2.0),它在第一次显示时会收集一些数据.如果找不到某些信息,则应该提供该效果的消息并重定向回另一个页面.我已经尝试使用此处找到的解决方案保存FacesMessage重定向到JSF中的<h:message>(setKeepMessages(true)),但重定向后没有显示消息.我可以选择的唯一区别是我没有使用导航规则,我在外部上下文上调用redirect()调用,因为这不是在正常操作中发生的.
相关代码:
public void redirectToPageWithMessage(String inPage, String message, FacesMessage.Severity severity){
getFlash().setKeepMessages(true);
addMessage(message, severity);
try {
getFacesContext().getExternalContext().redirect(inPage);
} catch (IOException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎不起作用.重定向发生得很好,但<messages />标签没有显示消息.redirect()发生的方式有什么不同可以防止这种情况发生吗?
保存消息的代码在阶段结束后执行(请参阅 Flash.doPostPhaseActions(FacesContext) )。因此,预计它不起作用,但也许您可以在重定向之前调用 Flash.doPostPhaseActions。Note 不是“干净”的解决方案,但它是可能的。
归档时间: |
|
查看次数: |
8222 次 |
最近记录: |