ModelAndView mav = null
switch (request.getMethod())
{
case "DELETE":
mav = doDelete(request, response)
break;
case "GET":
mav = doGet(request, response)
break;
case "HEAD":
mav = doHead(request, response)
break;
case "OPTIONS":
mav = doOptions(request, response)
break;
case "POST":
mav = doPost(request, response)
break;
case "PUT":
mav = doPut(request, response)
break;
case "TRACE":
mav = doTrace(request, response)
break;
default:
mav = doNothing(request, response)
break;
}
return mav
*/
public class BasicSpringRestController
extends AbstractController
{
protected static org.apache.commons.logging.Log logger =
org.apache.commons.logging.LogFactory.getLog(BasicSpringRestController.class);
// following METHOD_* constants are not currently provided by Spring Framework;
// however, METHOD_GET and METHOD_POST are provided by Spring Framework
public static final String METHOD_PUT = "PUT";
public static final String METHOD_DELETE = "DELETE";
public static final String METHOD_HEAD = "HEAD";
public static final String METHOD_OPTIONS = "OPTIONS";
public static final String METHOD_TRACE = "TRACE";
protected View textView;
protected View xhtmlView;
protected View xmlView;
//---------------------------------------------------------
public BasicSpringRestController()
{
super();
logger.debug("entered");
String[] strarraySupportedHttpMethods =
{
METHOD_GET,
METHOD_POST,
METHOD_PUT,
METHOD_DELETE,
METHOD_HEAD,
METHOD_OPTIONS,
METHOD_TRACE,
};
setSupportedMethods(strarraySupportedHttpMethods);
}
//---------------------------------------------------------
/**
Primary "do work" method called when a request is made
on the web service.
*/
public ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response)
{
logger.debug("entered");
logger.debug("supportedMethods: ${this.supportedMethods}");
ModelAndView mav = null;
String strRequestHttpMethod = request.getMethod();
logger.debug("strRequestHttpMethod: " + strRequestHttpMethod);
if (METHOD_GET.equalsIgnoreCase(strRequestHttpMethod))
{
mav = doGet(request, response);
}
else if (METHOD_PUT.equalsIgnoreCase(strRequestHttpMethod))
{
mav = doPut(request, response);
}
else if (METHOD_POST.equalsIgnoreCase(strRequestHttpMethod))
{
mav = doPost(request, response);
}
else if (METHOD_DELETE.equalsIgnoreCase(strRequestHttpMethod))
{
mav = doDelete(request, response);
}
else if (METHOD_HEAD.equalsIgnoreCase(strRequestHttpMethod))
{
mav = doHead(request, response);
}
else if (METHOD_OPTIONS.equalsIgnoreCase(strRequestHttpMethod))
{
mav = doOptions(request, response);
}
else if (METHOD_TRACE.equalsIgnoreCase(strRequestHttpMethod))
{
mav = doTrace(request, response);
}
else
{
//default:
//mav = doNothing(request, response);
}
return mav;
}
//---------------------------------------------------------
/**
If present, get the "username" paramater from the URL path.
@return null if username parameter is not present on the URL path,
else returns the username value from the URL path.
*/
public String getUserNameFromUrlIfPresent(HttpServletRequest request)
{
String strIdReturn = null;
Map mapRestParams = (Map) request.getAttribute(
"ParameterizedUrlHandlerMapping.path-parameters");
if (mapRestParams == null)
{
return null;
}
strIdReturn = (String) mapRestParams.get("username");
return strIdReturn;
}
//---------------------------------------------------------
/**
If present, get the "name" paramater from the URL path.
@return null if name parameter is not present on the URL path,
else returns the name value from the URL path.
*/
public String getNameFromUrlIfPresent(HttpServletRequest request)
{
String strIdReturn = null;
Map mapRestParams = (Map) request.getAttribute(
"ParameterizedUrlHandlerMapping.path-parameters");
if (mapRestParams == null)
{
return null;
}
strIdReturn = (String) mapRestParams.get("name");
return strIdReturn;
}
//---------------------------------------------------------
/**
If present, get the "id" paramater from the URL path.
@return null if id parameter is not present on the URL path,
else returns the id value from the URL path.
*/
public String getIdFromUrlIfPresent(HttpServletRequest request)
{
String strIdReturn = null;
Map mapRestParams = (Map) request.getAttribute(
"ParameterizedUrlHandlerMapping.path-parameters");
if (mapRestParams == null)
{
return null;
}
strIdReturn = (String) mapRestParams.get("id");
return strIdReturn;
}
//---------------------------------------------------------
public Boolean isStringPresentInRequestURI(HttpServletRequest request, String str)
{
String strURI = request.getRequestURI();
if (strURI == null)
{
return false;
}
if (strURI.lastIndexOf(str) > 0)
{
return true;
}
else
{
return false;
}
}
//---------------------------------------------------------
public ModelAndView doNothing(HttpServletRequest request, HttpServletResponse response)
{
ModelAndView mav = new ModelAndView(textView);
return mav;
}
//---------------------------------------------------------
public ModelAndView doDelete(HttpServletRequest request, HttpServletResponse response)
{
ModelAndView mav = new ModelAndView(textView);
return mav;
}
//---------------------------------------------------------
public ModelAndView doGet(HttpServletRequest request, HttpServletResponse response)
{
ModelAndView mav = new ModelAndView(textView);
return mav;
}
//---------------------------------------------------------
public ModelAndView doHead(HttpServletRequest request, HttpServletResponse response)
{
ModelAndView mav = new ModelAndView(textView);
return mav;
}
//---------------------------------------------------------
public ModelAndView doOptions(HttpServletRequest request, HttpServletResponse response)
{
ModelAndView mav = new ModelAndView(textView);
return mav;
}
//---------------------------------------------------------
public ModelAndView doPost(HttpServletRequest request, HttpServletResponse response)
{
ModelAndView mav = new ModelAndView(textView);
return mav;
}
//---------------------------------------------------------
public ModelAndView doPut(HttpServletRequest request, HttpServletResponse response)
{
ModelAndView mav = new ModelAndView(textView);
return mav;
}
//---------------------------------------------------------
public ModelAndView doTrace(HttpServletRequest request, HttpServletResponse response)
{
ModelAndView mav = new ModelAndView(textView);
return mav;
}
//---------------------------------------------------------
public View getTextView()
{
return textView;
}
//---------------------------------------------------------
public void setTextView(View textView)
{
this.textView = textView;
}
//---------------------------------------------------------
public View getXhtmlView()
{
return xhtmlView;
}
//---------------------------------------------------------
public void setXhtmlView(View xhtmlView)
{
this.xhtmlView = xhtmlView;
}
//---------------------------------------------------------
public View getXmlView()
{
return xmlView;
}
//---------------------------------------------------------
public void setXmlView(View xmlView)
{
this.xmlView = xmlView;
}
}