使用PF 3.3.1,PrettyFaces 3.3.3和JSF / Mojarra2.1。
我有一个自定义导航处理程序来处理我的应用程序页面上的“取消”按钮 - 取消按钮需要返回到上一个(引用)页面。我已经实现了一个基于堆栈的解决方案,该解决方案保存了用户导航的踪迹,并且几乎完成了navigationHandler的实现 - 但现在我遇到了麻烦。我似乎无法取消取消操作导航回我想要的页面。我尝试了以下内容:
我的NavigationHandler.handleNavigation中的 FacesContext.getCurrentInstance().redirect
。
接下来我尝试了类似的东西(再次,在NavigationHandler.handleNavigation中):
BreadCrumbStack.NavDetail navDetail = breadCrumbStack.popLastCrumb(facesContext);
if (navDetail != null) {
navDetail.getPrevViewId() + " ActionMethod: " + navDetail.getActionMethod() + " ActionName: " + navDetail.getActionName());
facesContext.getViewRoot().setViewId(navDetail.getPrevViewId());
parentHandler.handleNavigation(fc, navDetail.getActionMethod(), navDetail.getActionName());
return;
}
现在的问题是URLMapping(漂亮的面孔3.3.2) - 抱怨没有ID,这是必需的:
PrettyException: Exception occurred while building URL for Mapping Id Required value was null
我在其末尾有ID的完整网址 - 我想在我的重定向中使用它 - 但是,似乎重定向在我的自定义navigationHandler的handleNavigation方法中无法正常工作。
有没有人对我如何能够优雅地解决这个问题有任何想法?添加到网址末尾的ID / params对于每个屏幕都有所不同,我并不特别想要一起破解解决方案 - 如果我能在某种程度上将这个网址提供给PrettyFaces中的某个预定义类,那将会很不错会工作或做一个完整的重定向(我无法工作)
提前感谢您的帮助!