[Ajax4JSF] JSF2.1:重定向传值
haojie_java_ms
2014-09-12
在自定义ExceptionHandler中将页面redirect到error页面时,想把错误信息打印在页面上,所以使用了JSF的<h:messages/>标签,这样问题就出现了,画面重定向之后错误信息就不能显示了,我知道页面重定向之后,不能传递参数,但是项目需求奇怪啊。。。
求解决啊!!!!! 以下是截取项目中的代码,请参考: xxxCmd.java代码: public String goNextPage() { if (true) { throw new SystemException(); } return "nextPage.xhtml"; } 异常处理类MyExceptionHandler.java代码: public void handle() throw FacesException{ FacesContext ctx = getFacesContext(); FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, "This is error!", ""); ctx.addMessage(ctx.getViewRoot().getId(), fm); NavigationHandler nav = ctx .getApplication().getNavigationHandler(); nav.handleNavigation(ctx , null, "/error?faces-redirect=true"); ctx .renderResponse(); } 错误画面error.xhtml <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:armada="http://armada.com" xmlns:ui="http://java.sun.com/jsf/facelets"> <f:view> <h:head> <title>system error page</title> <h:outputStylesheet library="css" name="stylesheet.css" /> <script src="../js/common.js"></script> </h:head> <h:body> <h:messages /> </h:body> </f:view> </html> |