我正在尝试实现自定义导航,执行常规工作并更新我的痕迹。
public class CustomNaviguationHandler extends NavigationHandlerImpl{
public void handleNavigation(FacesContext context, String fromAction, String outcome) {
//do the breadcrumb update
super.handleNavigation(context, fromAction, outcome);
}
}
但是当我调试它时,该方法执行2次,
处理程序已在faces-config.xml
中注册<navigation-handler>my.package.CustomNaviguationHandler</navigation-handler>
我不确定为什么?有什么想法吗?
答案 0 :(得分:0)
您根本不应扩展JSF impl类NavigationHandlerImpl
。您应该扩展JSF API类NavigationHandler
。
这是一个启动示例。用handleNavigation()
方法完成工作。如果您不想对导航负责,请委托parent
。
public class CustomNavigationHandler extends NavigationHandler {
private NavigationHandler parent;
public CustomNavigationHandler(NavigationHandler parent) {
this.parent = parent;
}
@Override
public void handleNavigation(FacesContext context, String from, String outcome) {
parent.handleNavigation(context, from, outcome);
}
}