1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.web.portlet.handler;
18
19 import javax.portlet.ActionRequest;
20 import javax.portlet.ActionResponse;
21 import javax.portlet.EventRequest;
22 import javax.portlet.EventResponse;
23 import javax.portlet.RenderRequest;
24 import javax.portlet.RenderResponse;
25 import javax.portlet.ResourceRequest;
26 import javax.portlet.ResourceResponse;
27
28 import org.springframework.util.Assert;
29 import org.springframework.web.context.request.WebRequestInterceptor;
30 import org.springframework.web.portlet.HandlerInterceptor;
31 import org.springframework.web.portlet.ModelAndView;
32 import org.springframework.web.portlet.context.PortletWebRequest;
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 public class WebRequestHandlerInterceptorAdapter implements HandlerInterceptor {
51
52 private final WebRequestInterceptor requestInterceptor;
53
54 private final boolean renderPhaseOnly;
55
56
57
58
59
60
61
62 public WebRequestHandlerInterceptorAdapter(WebRequestInterceptor requestInterceptor) {
63 this(requestInterceptor, true);
64 }
65
66
67
68
69
70
71
72 public WebRequestHandlerInterceptorAdapter(WebRequestInterceptor requestInterceptor, boolean renderPhaseOnly) {
73 Assert.notNull(requestInterceptor, "WebRequestInterceptor must not be null");
74 this.requestInterceptor = requestInterceptor;
75 this.renderPhaseOnly = renderPhaseOnly;
76 }
77
78
79 @Override
80 public boolean preHandleAction(ActionRequest request, ActionResponse response, Object handler) throws Exception {
81 if (!this.renderPhaseOnly) {
82 this.requestInterceptor.preHandle(new PortletWebRequest(request));
83 }
84 return true;
85 }
86
87 @Override
88 public void afterActionCompletion(
89 ActionRequest request, ActionResponse response, Object handler, Exception ex) throws Exception {
90
91 if (!this.renderPhaseOnly) {
92 this.requestInterceptor.afterCompletion(new PortletWebRequest(request), ex);
93 }
94 }
95
96 @Override
97 public boolean preHandleRender(RenderRequest request, RenderResponse response, Object handler) throws Exception {
98 this.requestInterceptor.preHandle(new PortletWebRequest(request));
99 return true;
100 }
101
102 @Override
103 public void postHandleRender(
104 RenderRequest request, RenderResponse response, Object handler, ModelAndView modelAndView) throws Exception {
105
106 this.requestInterceptor.postHandle(new PortletWebRequest(request),
107 (modelAndView != null && !modelAndView.wasCleared() ? modelAndView.getModelMap() : null));
108 }
109
110 @Override
111 public void afterRenderCompletion(
112 RenderRequest request, RenderResponse response, Object handler, Exception ex) throws Exception {
113
114 this.requestInterceptor.afterCompletion(new PortletWebRequest(request), ex);
115 }
116
117 @Override
118 public boolean preHandleResource(ResourceRequest request, ResourceResponse response, Object handler)
119 throws Exception {
120
121 this.requestInterceptor.preHandle(new PortletWebRequest(request));
122 return true;
123 }
124
125 @Override
126 public void postHandleResource(ResourceRequest request, ResourceResponse response, Object handler, ModelAndView modelAndView)
127 throws Exception {
128
129 this.requestInterceptor.postHandle(new PortletWebRequest(request),
130 (modelAndView != null ? modelAndView.getModelMap() : null));
131 }
132
133 @Override
134 public void afterResourceCompletion(ResourceRequest request, ResourceResponse response, Object handler,
135 Exception ex) throws Exception {
136
137 this.requestInterceptor.afterCompletion(new PortletWebRequest(request), ex);
138 }
139
140 @Override
141 public boolean preHandleEvent(EventRequest request, EventResponse response, Object handler) throws Exception {
142 this.requestInterceptor.preHandle(new PortletWebRequest(request));
143 return true;
144 }
145
146 @Override
147 public void afterEventCompletion(EventRequest request, EventResponse response, Object handler, Exception ex)
148 throws Exception {
149
150 this.requestInterceptor.afterCompletion(new PortletWebRequest(request), ex);
151 }
152
153 }