mvc external context

This commit is contained in:
Keith Donald
2008-04-18 15:36:18 +00:00
parent a0c26d52d3
commit 4d8978325a
4 changed files with 69 additions and 2 deletions

View File

@@ -286,6 +286,36 @@ public class ServletExternalContext implements ExternalContext {
return redirectInPopup;
}
// hooks for subclasses
/**
* Returns the servlet context.
*/
protected ServletContext getContext() {
return context;
}
/**
* Returns the underlying HttpServletRequest.
*/
protected HttpServletRequest getRequest() {
return request;
}
/**
* Returns the underlying HttpServletResponse.
*/
protected HttpServletResponse getResponse() {
return response;
}
/**
* Returns the configured flow url handler.
*/
protected FlowUrlHandler getFlowUrlHandler() {
return flowUrlHandler;
}
// private helpers
private void init(ServletContext context, HttpServletRequest request, HttpServletResponse response,

View File

@@ -173,7 +173,7 @@ public class FlowController extends AbstractController {
protected ServletExternalContext createServletExternalContext(HttpServletRequest request,
HttpServletResponse response) {
ServletExternalContext context = new ServletExternalContext(getServletContext(), request, response, urlHandler);
ServletExternalContext context = new MvcExternalContext(getServletContext(), request, response, urlHandler);
context.setAjaxRequest(ajaxHandler.isAjaxRequest(getServletContext(), request, response));
return context;
}

View File

@@ -137,7 +137,7 @@ public class FlowHandlerAdapter extends WebApplicationObjectSupport implements H
protected ServletExternalContext createServletExternalContext(HttpServletRequest request,
HttpServletResponse response) {
ServletExternalContext context = new ServletExternalContext(getServletContext(), request, response, urlHandler);
ServletExternalContext context = new MvcExternalContext(getServletContext(), request, response, urlHandler);
context.setAjaxRequest(ajaxHandler.isAjaxRequest(getServletContext(), request, response));
return context;
}

View File

@@ -0,0 +1,37 @@
package org.springframework.webflow.mvc.servlet;
import java.util.Locale;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.support.RequestContextUtils;
import org.springframework.webflow.context.servlet.FlowUrlHandler;
import org.springframework.webflow.context.servlet.ServletExternalContext;
/**
* Spring MVC external context implementation. Is a {@link ServletExternalContext}, but overrides operations to plug in
* specific functionality available in a Spring MVC Environment.
*
* @author Keith Donald
*/
public class MvcExternalContext extends ServletExternalContext {
/**
* Create a new external context wrapping given servlet HTTP request and response and given servlet context.
* @param context the servlet context
* @param request the http servlet request
* @param response the http servlet response
* @param flowUrlHandler the flow url handler
*/
public MvcExternalContext(ServletContext context, HttpServletRequest request, HttpServletResponse response,
FlowUrlHandler flowUrlHandler) {
super(context, request, response, flowUrlHandler);
}
public Locale getLocale() {
return RequestContextUtils.getLocale(getRequest());
}
}