ColdBox Platform Version 3.7.0

coldbox.system.web.context
Class RequestContext

WEB-INF.cftags.component
        extended by coldbox.system.web.context.RequestContext
Direct Known Subclasses:
RequestContextDecorator

public class RequestContext
extends WEB-INF.cftags.component

The request context object simulates a user request. It has two internal data collections: one public and one private. You can also manipulate the request stream and contents from this object.


Constructor Summary
init(any properties, any controller)
          constructor
 
Method Summary
private void $dump(any var, [boolean isAbort='false'])
          Facade for cfmx dump
private any $throw(string message, [string detail=''], [string type='Framework'])
          Facade for cfthrow
 any buildLink(string linkto, [boolean translate='true'], [boolean ssl='false'], [string baseURL=''], [string queryString=''])
          Builds a link to a passed event, either SES or normal link
 any clearCollection([boolean private='false'])
          Clears the entire collection
 any collectionAppend(any collection, [boolean overwrite='false'], [boolean private='false'])
          Append a structure to the collection, with overwrite or not
 any<struct> getCollection([boolean deepCopyFlag='false'], [boolean private='false'])
          I Get a reference or deep copy of the public or private request Collection
 any getCurrentAction()
          Gets the current action requested in the current event: String
 any getCurrentEvent()
          Gets the current incoming event
 any getCurrentHandler()
          Gets the current handler requested in the current event: String
 any getCurrentLayout()
          Gets the current set layout for rendering
 any getCurrentLayoutModule()
          Gets the current set layout's module for rendering
 any getCurrentModule()
          Gets the current module name, else returns empty string
 any getCurrentRoute()
          Get the current request's SES route that matched
 any getCurrentRoutedNamespace()
          Get the current routed namespace that matched the SES route, if any
 any getCurrentRoutedURL()
          Get the current routed URL that matched the SES route
 any getCurrentView()
          Gets the current set view the framework will try to render for this request
 any getCurrentViewArgs()
          Gets the current set view the framework will try to render for this request
 any getCurrentViewModule()
          Gets the current set views's module for rendering
 boolean getDebugPanelFlag()
          I return the debugpanel flag for this request
 any getDefaultLayout()
          Get's the default layout of the application: String
 any getDefaultView()
          Get's the default view of the application: String
 any getEventCacheableEntry()
          Get the event cacheable entry
 any getEventName()
          The event name used by the application: String
 struct getFolderLayouts()
          Get the registered folder layout associations map
 struct getHTTPBasicCredentials()
          Returns the username and password sent via HTTP basic authentication
 any getHTTPContent()
          Get the raw HTTP content
 any getHTTPHeader(string header, [any default])
          Get a HTTP header
 any getHTTPMethod()
          Get the HTTP Request Method Type
 any getMemento()
          Get the state of this request context
 any getModuleRoot([any module=''])
          Convenience method to get the current request's module root path
 struct getRegisteredLayouts()
          Get all the registered layouts in the configuration file
 any getRenderData()
          Get the renderData structure
 struct getRoutedStruct()
          Get the routed structure of key-value pairs
 string getSESBaseURL()
          Get the ses base URL for this request
 any getSelf()
          Returns index
 numeric getSize([boolean private='false'])
          Returns the number of elements in the collection
 Any getTrimValue(any name, [any defaultValue], [boolean private='false'])
          I Get a value from the request collection and if simple value, I will trim it
 Any getValue(any name, [any defaultValue], [any private='false'])
          I Get a value from the public or private request collection
 any getViewCacheableEntry()
          Get the event cacheable entry
 struct getViewLayouts()
          Get the registered view layout associations map
 boolean isAjax()
          Determines if in an Ajax call or not by looking at the request headers
 any isEventCacheable()
          Check wether the incoming event has been flagged for caching
 any isNoExecution()
          Determine if we need to execute an incoming event or not
 any isNoRender()
          Is this a no render request
 boolean isProxyRequest()
          Is this a coldbox proxy request
 boolean isSES()
          Determine if you are in SES mode
 boolean isSSL()
          Returns boolean result whether current request is in ssl or not
 boolean isViewCacheable()
          Check wether the incoming view has been flagged for caching
 any noExecution()
          Set that the request will not execute an incoming event
 any noLayout()
          Mark this request to not use a layout for rendering
 any noRender([boolean remove='false'])
          Set the flag that tells the framework not to render, just execute
 any overrideEvent([any event])
          I Override the current event in the request collection
 any paramValue(any name, any value, [boolean private='false'])
          Just like cfparam, but for the request collection
 any removeEventCacheableEntry()
          Remove the cacheable entry
 any removeValue(string name, [boolean private='false'])
          I remove a value in the request collection
 any renderData([string type='HTML'], any data, string contentType='', [string encoding='utf-8'], [numeric statusCode='200'], [string statusText=''], [string location=''], [string jsonCallback=''], [string jsonQueryFormat='query'], [boolean jsonAsText='false'], [string xmlColumnList=''], [boolean xmlUseCDATA='false'], [string xmlListDelimiter=','], [string xmlRootName=''], [struct pdfArgs='[runtime expression]'], [any formats=''], [any formatsView=''])
          Use this method to tell the framework to render data for you
private any renderWithFormats()
          Render With Formats
 any setDefaultLayout(string DefaultLayout)
          Override the default layout for a request
 any setDefaultView(string DefaultView)
          Override the default view for a request
 any setEventCacheableEntry(any mdCacheEntry)
          Set the event cacheable entry
 any setHTTPHeader([string statusCode], [string statusText=''], [string name], [string value=''], [string charset='UTF-8'])
          Set an HTTP Header
 any setLayout(any name, [any module=''])
          I Set the layout to override and render
 any setMemento(any memento)
          Set the state of this request context
 any setProxyRequest()
          Set that this is a proxy request
 any setRoutedStruct(struct routedStruct)
          Set routed struct of key-value pairs
 any setSESBaseURL(string sesBaseURL)
          Set the ses base URL for this request
 any setValue(any name, any value, [boolean private='false'])
          I Set a value in the request collection
 any setView([any view], [boolean nolayout='false'], [boolean cache='false'], [any cacheTimeout=''], [any cacheLastAccessTimeout=''], [any cacheSuffix=''], [any cacheProvider='template'], [any layout], [any module=''], [struct args='[runtime expression]'])
          I Set the view to render in this request
 any setViewCacheableEntry(any mdCacheEntry)
          Set the view cacheable entry
 any setisSES(boolean isSES)
          Set the isSES flag, usualy done by the SES interceptor
 any showDebugPanel(boolean show)
          I can override to show or not the debug panel
 boolean valueExists(any name, [boolean private='false'])
          I Check if a value exists in the request collection
 
Methods inherited from class WEB-INF.cftags.component
 

Constructor Detail

init

public init(any properties, any controller)
constructor

Parameters:
properties - The context properties struct
controller - The ColdBox Controller
Method Detail

$dump

private void $dump(any var, [boolean isAbort='false'])
Facade for cfmx dump

Parameters:
var
isAbort - Abort also

$throw

private any $throw(string message, [string detail=''], [string type='Framework'])
Facade for cfthrow

Parameters:
message
detail
type

buildLink

public any buildLink(string linkto, [boolean translate='true'], [boolean ssl='false'], [string baseURL=''], [string queryString=''])
Builds a link to a passed event, either SES or normal link. If the ses interceptor is declared it will create routes.

Parameters:
linkto - The event or route you want to create the link to
translate - Translate between . and / depending on the ses mode. So you can just use dot notation.
ssl - If true, it will change http to https if found in the ses base url.
baseURL - If not using SES, you can use this argument to create your own base url apart from the default of index.cfm. Example: https://mysample.com/index.cfm
queryString - The query string to append, if needed.

clearCollection

public any clearCollection([boolean private='false'])
Clears the entire collection

Parameters:
private - Use public or private request collection

collectionAppend

public any collectionAppend(any collection, [boolean overwrite='false'], [boolean private='false'])
Append a structure to the collection, with overwrite or not. Overwrite = false by default

Parameters:
collection - A collection to append
overwrite - If you need to override data in the collection, set this to true.
private - Use public or private request collection

getCollection

Public any<struct> getCollection([boolean deepCopyFlag='false'], [boolean private='false'])
I Get a reference or deep copy of the public or private request Collection

Parameters:
deepCopyFlag - Default is false, gives a reference to the collection. True, creates a deep copy of the collection.
private - Use public or private request collection

getCurrentAction

public any getCurrentAction()
Gets the current action requested in the current event: String


getCurrentEvent

public any getCurrentEvent()
Gets the current incoming event


getCurrentHandler

public any getCurrentHandler()
Gets the current handler requested in the current event: String


getCurrentLayout

public any getCurrentLayout()
Gets the current set layout for rendering


getCurrentLayoutModule

public any getCurrentLayoutModule()
Gets the current set layout's module for rendering


getCurrentModule

public any getCurrentModule()
Gets the current module name, else returns empty string


getCurrentRoute

public any getCurrentRoute()
Get the current request's SES route that matched


getCurrentRoutedNamespace

public any getCurrentRoutedNamespace()
Get the current routed namespace that matched the SES route, if any


getCurrentRoutedURL

public any getCurrentRoutedURL()
Get the current routed URL that matched the SES route


getCurrentView

public any getCurrentView()
Gets the current set view the framework will try to render for this request


getCurrentViewArgs

public any getCurrentViewArgs()
Gets the current set view the framework will try to render for this request


getCurrentViewModule

public any getCurrentViewModule()
Gets the current set views's module for rendering


getDebugPanelFlag

public boolean getDebugPanelFlag()
I return the debugpanel flag for this request.


getDefaultLayout

public any getDefaultLayout()
Get's the default layout of the application: String


getDefaultView

public any getDefaultView()
Get's the default view of the application: String


getEventCacheableEntry

public any getEventCacheableEntry()
Get the event cacheable entry


getEventName

public any getEventName()
The event name used by the application: String


getFolderLayouts

public struct getFolderLayouts()
Get the registered folder layout associations map


getHTTPBasicCredentials

public struct getHTTPBasicCredentials()
Returns the username and password sent via HTTP basic authentication


getHTTPContent

public any getHTTPContent()
Get the raw HTTP content


getHTTPHeader

public any getHTTPHeader(string header, [any default])
Get a HTTP header

Parameters:
header - The header key
default - A default value if the header does not exist

getHTTPMethod

public any getHTTPMethod()
Get the HTTP Request Method Type


getMemento

public any getMemento()
Get the state of this request context


getModuleRoot

public any getModuleRoot([any module=''])
Convenience method to get the current request's module root path. If no module, then returns empty path. You can also get this from the modules settings.

Parameters:
module - Optional name of the module you want the root for, defaults to the current module

getRegisteredLayouts

public struct getRegisteredLayouts()
Get all the registered layouts in the configuration file


getRenderData

public any getRenderData()
Get the renderData structure.


getRoutedStruct

public struct getRoutedStruct()
Get the routed structure of key-value pairs. What the ses interceptor could match.


getSESBaseURL

public string getSESBaseURL()
Get the ses base URL for this request


getSelf

public any getSelf()
Returns index.cfm?{eventName}= : String


getSize

public numeric getSize([boolean private='false'])
Returns the number of elements in the collection

Parameters:
private - Use public or private request collection

getTrimValue

Public Any getTrimValue(any name, [any defaultValue], [boolean private='false'])
I Get a value from the request collection and if simple value, I will trim it.

Parameters:
name - Name of the variable to get from the request collection
defaultValue - Default value to return if not found.
private - Use public or private request collection

getValue

Public Any getValue(any name, [any defaultValue], [any private='false'])
I Get a value from the public or private request collection.

Parameters:
name - Name of the variable to get from the request collection
defaultValue - Default value to return if not found.
private - Use public or private request collection. Boolean

getViewCacheableEntry

public any getViewCacheableEntry()
Get the event cacheable entry


getViewLayouts

public struct getViewLayouts()
Get the registered view layout associations map


isAjax

public boolean isAjax()
Determines if in an Ajax call or not by looking at the request headers


isEventCacheable

public any isEventCacheable()
Check wether the incoming event has been flagged for caching. Boolean


isNoExecution

public any isNoExecution()
Determine if we need to execute an incoming event or not.


isNoRender

public any isNoRender()
Is this a no render request


isProxyRequest

public boolean isProxyRequest()
Is this a coldbox proxy request


isSES

public boolean isSES()
Determine if you are in SES mode.


isSSL

public boolean isSSL()
Returns boolean result whether current request is in ssl or not


isViewCacheable

public boolean isViewCacheable()
Check wether the incoming view has been flagged for caching


noExecution

public any noExecution()
Set that the request will not execute an incoming event. Most likely simulating a servlet call.


noLayout

public any noLayout()
Mark this request to not use a layout for rendering


noRender

public any noRender([boolean remove='false'])
Set the flag that tells the framework not to render, just execute

Parameters:
remove - If true, it removes the flag, else its set.

overrideEvent

Public any overrideEvent([any event])
I Override the current event in the request collection. This method does not execute the event, it just replaces the event to be executed by the framework's RunEvent() method. This method is usually called from an onRequestStart or onApplicationStart method.

Parameters:
event - The name of the event to override.

paramValue

Public any paramValue(any name, any value, [boolean private='false'])
Just like cfparam, but for the request collection

Parameters:
name - Name of the variable to param in the request collection: String
value - The value of the variable to set if not found.
private - Use public or private request collection

removeEventCacheableEntry

public any removeEventCacheableEntry()
Remove the cacheable entry


removeValue

Public any removeValue(string name, [boolean private='false'])
I remove a value in the request collection

Parameters:
name - The name of the variable to remove.
private - Use public or private request collection

renderData

public any renderData([string type='HTML'], any data, string contentType='', [string encoding='utf-8'], [numeric statusCode='200'], [string statusText=''], [string location=''], [string jsonCallback=''], [string jsonQueryFormat='query'], [boolean jsonAsText='false'], [string xmlColumnList=''], [boolean xmlUseCDATA='false'], [string xmlListDelimiter=','], [string xmlRootName=''], [struct pdfArgs='[runtime expression]'], [any formats=''], [any formatsView=''])
Use this method to tell the framework to render data for you. The framework will take care of marshalling the data for you

Parameters:
type - The type of data to render. Valid types are JSON, JSONP, JSONT, XML, WDDX, PLAIN/HTML, TEXT, PDF. The deafult is HTML or PLAIN. If an invalid type is sent in, this method will throw an error
data - The data you would like to marshall and return by the framework
contentType - The content type of the data. This will be used in the cfcontent tag: text/html, text/plain, text/xml, text/json, etc. The default value is text/html. However, if you choose JSON this method will choose application/json, if you choose WDDX or XML this method will choose text/xml for you. The default encoding is utf-8
encoding - The default character encoding to use
statusCode - The HTTP status code to send to the browser. Defaults to 200
statusText - Explains the HTTP status code sent to the browser.
location - Optional argument used to set the HTTP Location header
jsonCallback - Only needed when using JSONP, this is the callback to add to the JSON packet
jsonQueryFormat - JSON Only: query or array format for encoding. The default is CF query standard
jsonAsText - If set to false, defaults content mime-type to application/json, else will change encoding to plain/text
xmlColumnList - XML Only: Choose which columns to inspect, by default it uses all the columns in the query, if using a query
xmlUseCDATA - XML Only: Use CDATA content for ALL values. The default is false
xmlListDelimiter - XML Only: The delimiter in the list. Comma by default
xmlRootName - XML Only: The name of the initial root element of the XML packet
pdfArgs - All the PDF arguments to pass along to the CFDocument tag.
formats - The formats list or array that ColdBox should respond to using the passed in data argument. You can pass any of the valid types (JSON,JSONP,JSONT,XML,WDDX,PLAIN,HTML,TEXT,PDF). For PDF and HTML we will try to render the view by convention based on the incoming event.
formatsView - The view that should be used for rendering HTML/PLAIN/PDF. By default ColdBox uses the name of the event as an implicit view.

renderWithFormats

private any renderWithFormats()
Render With Formats


setDefaultLayout

public any setDefaultLayout(string DefaultLayout)
Override the default layout for a request

Parameters:
DefaultLayout

setDefaultView

public any setDefaultView(string DefaultView)
Override the default view for a request

Parameters:
DefaultView

setEventCacheableEntry

public any setEventCacheableEntry(any mdCacheEntry)
Set the event cacheable entry

Parameters:
mdCacheEntry - The cache entry we need to get to cache

setHTTPHeader

public any setHTTPHeader([string statusCode], [string statusText=''], [string name], [string value=''], [string charset='UTF-8'])
Set an HTTP Header

Parameters:
statusCode - A status code
statusText - A status text
name - The header name
value - The header value
charset - The charset to use

setLayout

public any setLayout(any name, [any module=''])
I Set the layout to override and render. Layouts are pre-defined in the config file. However I can override these settings if needed. Do not append a the cfm extension. Private Request Collection name: currentLayout

Parameters:
name - The name or alias of the layout file to set.
module - Is the layout from a module or not

setMemento

public any setMemento(any memento)
Set the state of this request context

Parameters:
memento

setProxyRequest

public any setProxyRequest()
Set that this is a proxy request


setRoutedStruct

public any setRoutedStruct(struct routedStruct)
Set routed struct of key-value pairs. This is used only by the SES interceptor. Not for public use.

Parameters:
routedStruct

setSESBaseURL

public any setSESBaseURL(string sesBaseURL)
Set the ses base URL for this request

Parameters:
sesBaseURL

setValue

Public any setValue(any name, any value, [boolean private='false'])
I Set a value in the request collection

Parameters:
name - The name of the variable to set. String
value - The value of the variable to set
private - Use public or private request collection

setView

public any setView([any view], [boolean nolayout='false'], [boolean cache='false'], [any cacheTimeout=''], [any cacheLastAccessTimeout=''], [any cacheSuffix=''], [any cacheProvider='template'], [any layout], [any module=''], [struct args='[runtime expression]'])
I Set the view to render in this request. Private Request Collection Name: currentView, currentLayout

Parameters:
view - The name of the view to set. If a layout has been defined it will assign it, else if will assign the default layout. No extension please
nolayout - Boolean flag, wether the view sent in will be using a layout or not. Default is false. Uses a pre set layout or the default layout.
cache - True if you want to cache the rendered view.
cacheTimeout - The cache timeout
cacheLastAccessTimeout - The last access timeout
cacheSuffix - Add a cache suffix to the view cache entry. Great for multi-domain caching or i18n caching.
cacheProvider - The cache provider you want to use for storing the rendered view. By default we use the 'template' cache provider
layout - You can override the rendering layout of this setView() call if you want to. Else it defaults to implicit resolution or another override.
module - Is the view from a module or not
args - An optional set of arguments that will be available when the view is rendered

setViewCacheableEntry

public any setViewCacheableEntry(any mdCacheEntry)
Set the view cacheable entry

Parameters:
mdCacheEntry - The cache entry we need to get to cache

setisSES

public any setisSES(boolean isSES)
Set the isSES flag, usualy done by the SES interceptor

Parameters:
isSES

showDebugPanel

public any showDebugPanel(boolean show)
I can override to show or not the debug panel. Very useful in AJAX debugging

Parameters:
show

valueExists

Public boolean valueExists(any name, [boolean private='false'])
I Check if a value exists in the request collection.

Parameters:
name - Name of the variable to find in the request collection: String
private - Use public or private request collection

ColdBox Platform Version 3.7.0