I personally use navigation rules, based on sessionScope variables, and the breadcrumbs. For example:
previousStep = sessionScope.breadCrumbLevel - 1;
previousStep2 = sessionScope.breadCrumbLevel - 2;
previousStep3 = sessionScope.breadCrumbLevel - 3;
previousStep4 = sessionScope.breadCrumbLevel - 4;
sessionCommand = "breadCrumbLink" + previousStep.toString();
sessionCommand2 = "breadCrumbLink" + previousStep2.toString();
sessionCommand3 = "breadCrumbLink" + previousStep3.toString();
sessionCommand4 = "breadCrumbLink" + previousStep4.toString();
if (sessionScope.get(sessionCommand) != ""){
return sessionScope.get(sessionCommand)
} else if (sessionScope.get(sessionCommand2) != ""){
return sessionScope.get(sessionCommand2)
} else if (sessionScope.get(sessionCommand3) != ""){
return sessionScope.get(sessionCommand3)
} else if (sessionScope.get(sessionCommand4) != ""){
return sessionScope.get(sessionCommand4)
}
{
return "/XP_Home.xsp"
}