com.randomcoder.article
Class AbstractSingleArticleController

java.lang.Object
  extended by org.springframework.context.support.ApplicationObjectSupport
      extended by org.springframework.web.context.support.WebApplicationObjectSupport
          extended by org.springframework.web.servlet.support.WebContentGenerator
              extended by org.springframework.web.servlet.mvc.AbstractController
                  extended by org.springframework.web.servlet.mvc.BaseCommandController
                      extended by org.springframework.web.servlet.mvc.AbstractFormController
                          extended by org.springframework.web.servlet.mvc.SimpleFormController
                              extended by com.randomcoder.article.AbstractSingleArticleController
All Implemented Interfaces:
org.springframework.context.ApplicationContextAware, org.springframework.web.context.ServletContextAware, org.springframework.web.servlet.mvc.Controller
Direct Known Subclasses:
ArticleIdController, ArticlePermalinkController

public abstract class AbstractSingleArticleController
extends org.springframework.web.servlet.mvc.SimpleFormController

Abstract controller class which provides support for displaying a single article.

 Copyright (c) 2006-2007, Craig Condit. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
 
   * Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above copyright notice,
     this list of conditions and the following disclaimer in the documentation
     and/or other materials provided with the distribution.
     
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.
 


Field Summary
protected  ArticleBusiness articleBusiness
          Article business methods.
protected  ArticleDao articleDao
          Article DAO.
protected  ContentFilter contentFilter
          Content filter.
protected  String urlPrefix
          URL prefix.
 
Fields inherited from class org.springframework.web.servlet.mvc.BaseCommandController
DEFAULT_COMMAND_NAME
 
Fields inherited from class org.springframework.web.servlet.support.WebContentGenerator
METHOD_GET, METHOD_HEAD, METHOD_POST
 
Constructor Summary
AbstractSingleArticleController()
           
 
Method Summary
protected  Object formBackingObject(HttpServletRequest request)
          Creates a new CommentCommand bound to the requested article.
protected  String getAppPath(HttpServletRequest request)
          Gets the path of the current request relative to the context path.
protected abstract  Article loadArticle(HttpServletRequest request)
          Loads the article associated with this request.
protected  org.springframework.web.servlet.ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, org.springframework.validation.BindException errors)
          Creates a comment upon form submission.
protected  Map referenceData(HttpServletRequest request, Object command, org.springframework.validation.Errors errors)
          Populates model with required data.
 void setArticleBusiness(ArticleBusiness articleBusiness)
          Sets the ArticleBusiness implementation to use.
 void setArticleDao(ArticleDao articleDao)
          Sets the ArticleDao implementation to use.
 void setContentFilter(ContentFilter contentFilter)
          Sets the content filter to use.
 void setUrlPrefix(String urlPrefix)
          Sets the url prefix to remove from the front of the url
 
Methods inherited from class org.springframework.web.servlet.mvc.SimpleFormController
doSubmitAction, getFormView, getSuccessView, isFormChangeRequest, isFormChangeRequest, onFormChange, onFormChange, onSubmit, onSubmit, processFormSubmission, referenceData, setFormView, setSuccessView, showForm, showForm, suppressValidation
 
Methods inherited from class org.springframework.web.servlet.mvc.AbstractFormController
currentFormObject, getCommand, getErrorsForNewForm, getFormSessionAttributeName, getFormSessionAttributeName, handleInvalidSubmit, handleRequestInternal, isBindOnNewForm, isFormSubmission, isSessionForm, onBindOnNewForm, onBindOnNewForm, setBindOnNewForm, setSessionForm, showForm, showForm, showNewForm
 
Methods inherited from class org.springframework.web.servlet.mvc.BaseCommandController
bindAndValidate, checkCommand, createBinder, createCommand, getBindingErrorProcessor, getCommandClass, getCommandName, getMessageCodesResolver, getPropertyEditorRegistrars, getValidator, getValidators, initApplicationContext, initBinder, isValidateOnBinding, onBind, onBind, onBindAndValidate, prepareBinder, setBindingErrorProcessor, setCommandClass, setCommandName, setMessageCodesResolver, setPropertyEditorRegistrar, setPropertyEditorRegistrars, setValidateOnBinding, setValidator, setValidators, suppressBinding, suppressValidation, suppressValidation, useDirectFieldAccess
 
Methods inherited from class org.springframework.web.servlet.mvc.AbstractController
handleRequest, isSynchronizeOnSession, setSynchronizeOnSession
 
Methods inherited from class org.springframework.web.servlet.support.WebContentGenerator
applyCacheSeconds, applyCacheSeconds, cacheForSeconds, cacheForSeconds, checkAndPrepare, checkAndPrepare, getCacheSeconds, getSupportedMethods, isRequireSession, isUseCacheControlHeader, isUseExpiresHeader, preventCaching, setCacheSeconds, setRequireSession, setSupportedMethods, setUseCacheControlHeader, setUseExpiresHeader
 
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, isContextRequired, setServletContext
 
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, requiredContextClass, setApplicationContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

urlPrefix

protected String urlPrefix
URL prefix.


articleDao

protected ArticleDao articleDao
Article DAO.


contentFilter

protected ContentFilter contentFilter
Content filter.


articleBusiness

protected ArticleBusiness articleBusiness
Article business methods.

Constructor Detail

AbstractSingleArticleController

public AbstractSingleArticleController()
Method Detail

setUrlPrefix

public void setUrlPrefix(String urlPrefix)
Sets the url prefix to remove from the front of the url

Parameters:
urlPrefix - url prefix

setArticleDao

public void setArticleDao(ArticleDao articleDao)
Sets the ArticleDao implementation to use.

Parameters:
articleDao - ArticleDao implementation

setContentFilter

public void setContentFilter(ContentFilter contentFilter)
Sets the content filter to use.

Parameters:
contentFilter - content filter

setArticleBusiness

public void setArticleBusiness(ArticleBusiness articleBusiness)
Sets the ArticleBusiness implementation to use.

Parameters:
articleBusiness - ArticleBusiness implementation

loadArticle

protected abstract Article loadArticle(HttpServletRequest request)
Loads the article associated with this request.

Parameters:
request - HTTP request
Returns:
Article to display

formBackingObject

protected Object formBackingObject(HttpServletRequest request)
                            throws Exception
Creates a new CommentCommand bound to the requested article.

Overrides:
formBackingObject in class org.springframework.web.servlet.mvc.AbstractFormController
Parameters:
request - HTTP request
Returns:
CommentCommand instance
Throws:
Exception

referenceData

protected Map referenceData(HttpServletRequest request,
                            Object command,
                            org.springframework.validation.Errors errors)
                     throws Exception
Populates model with required data.

Overrides:
referenceData in class org.springframework.web.servlet.mvc.SimpleFormController
Parameters:
request - HTTP request
command - command object
errors - errors object
Returns:
Map containing data needed for view
Throws:
Exception

onSubmit

protected org.springframework.web.servlet.ModelAndView onSubmit(HttpServletRequest request,
                                                                HttpServletResponse response,
                                                                Object command,
                                                                org.springframework.validation.BindException errors)
                                                         throws Exception
Creates a comment upon form submission.

Overrides:
onSubmit in class org.springframework.web.servlet.mvc.SimpleFormController
Parameters:
request - HTTP request
response - HTTP response
command - command object
errors - errors object
Returns:
ModelAndView which redirects back to article page
Throws:
Exception

getAppPath

protected final String getAppPath(HttpServletRequest request)
Gets the path of the current request relative to the context path.

Parameters:
request - request
Returns:
app path


Copyright © 2006-2008 Craig Condit. All Rights Reserved.