1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.custom.redirectTracker;
20
21 import javax.faces.application.NavigationHandler;
22 import javax.faces.context.ExternalContext;
23 import javax.faces.context.FacesContext;
24
25
26
27
28 public class RedirectTrackerNavigationHandler extends NavigationHandler
29 {
30 private final NavigationHandler original;
31
32 public RedirectTrackerNavigationHandler(NavigationHandler original)
33 {
34 this.original = original;
35 }
36
37 public void handleNavigation(FacesContext facesContext, String fromAction, String outcome)
38 {
39 final RedirectTrackerExternalContextWrapper wrappedExternalContext = new RedirectTrackerExternalContextWrapper(facesContext.getExternalContext());
40 original.handleNavigation(new FacesContextWrapper(facesContext)
41 {
42 public ExternalContext getExternalContext()
43 {
44 return wrappedExternalContext;
45 }
46 },
47 fromAction,
48 outcome);
49 }
50 }