如何使用漂亮的面孔实现自定义导航处理 - 无法传递所需的参数

时间:2012-07-20 22:25:27

标签: jsf navigation prettyfaces

使用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中的某个预定义类,那将会很不错会工作或做一个完整的重定向(我无法工作)

提前感谢您的帮助!

0 个答案:

没有答案