Class AbstractWebContext
- All Implemented Interfaces:
WebContext
,Adaptable
- Direct Known Subclasses:
DefaultContext
- Author:
- Bogdan Stefanescu
-
Field Summary
Modifier and TypeFieldDescriptionprotected String
protected static final Locale
protected final WebEngine
protected FormData
protected Resource
static final String
protected Module
protected final javax.servlet.http.HttpServletRequest
protected final javax.servlet.http.HttpServletResponse
protected Resource
protected final LinkedList<File>
protected Resource
Fields inherited from interface org.nuxeo.ecm.webengine.model.WebContext
NUXEO_WEBENGINE_BASE_PATH
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractWebContext
(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) -
Method Summary
Modifier and TypeMethodDescriptionboolean
checkGuard
(String guard) Check the given expression in this context and return true if the expression is verified or false otherwise.createBindings
(Map<String, Object> vars) <T> T
getAdapter
(Class<T> adapter) Returns an object which is an instance of the given class associated with this object.Gets the path of the servlet.Gets the URL of the base path.Convenience method to get a cookie value.Convenience method to get a cookie value using a default value.Gets the Core Session (or Repository Session) corresponding to that request.Gets the web engine instance.template and script resolvergetForm()
Gets the representation of the data form submitted by the user.Gets the context locale.org.apache.logging.log4j.Logger
getLog()
Gets a logger to be used by scripts for logging.Gets the login path for the current context.getMessage
(String key) Gets the i18n message for the given key.getMessage
(String key, Object... args) The same asWebContext.getMessage(String)
but with parameter supportgetMessage
(String key, List<Object> args) The same asWebContext.getMessage(String)
but with parameter supportgetMessageL
(String key, String language) Same asWebContext.getMessage(String)
but uses the given locale.getMessageL
(String key, String locale, Object... args) The same asWebContext.getMessage(String)
but uses the given locale, with parameter supportgetMessageL
(String key, String locale, List<Object> args) The same asWebContext.getMessage(String)
but uses the given locale, with parameter support.Get HTTP Method.Gets the current web application.Get the path prefix that identify the current web application.Gets the principal identifying the user that originated the request.getProperty
(String key) Gets a context variable.getProperty
(String key, Object defaultValue) Gets a context variable.javax.servlet.http.HttpServletRequest
Gets the underlying HTTP servlet request object.javax.servlet.http.HttpServletResponse
getRoot()
Gets the root resource if any resource was defined as being the rootGets the server URL without any path or trailing /.getURI()
Returns the part of this request's URL from the protocol name up to the query string in the first line of the HTTP request.getURL()
Gets the URL requested by the client.Gets the path portion of the request URL.getUrlPath
(DocumentModel document) This method is working only for root objects that implementModuleResource
Gets the current user session.head()
protected void
initializeBindings
(Map<String, Object> bindings) static boolean
newAdapter
(Resource ctx, String serviceName, Object... args) newObject
(ResourceType type, Object... args) pop()
void
pushScriptFile
(File file) void
Renders the given template using the rendering engine registered in that web engine.void
Renders the given template using the rendering engine registered in that web engine.void
render
(ScriptFile script, Object ctx, Writer writer) Renders the given template using the rendering engine registered in that web engine.Runs the given script.Runs the given script.runScript
(ScriptFile script, Map<String, Object> args) Runs the script using given argumentsstatic void
setIsRepositorySupportDisabled
(boolean isRepositoryDisabled) Can be used by the application to disable injecting repository sessions in scripting context.void
Sets the current locale, that will be kept in context.void
void
setProperty
(String key, Object value) Sets a context variable.void
setRepositoryName
(String repoName) Sets the repository name that will be used byWebContext.getCoreSession()
.void
Set the root resource of this contexttail()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.nuxeo.ecm.webengine.model.WebContext
getHttpHeaders, getServerHttpContext, getServerInjectableProviderContext, getUriInfo
-
Field Details
-
DEFAULT_LOCALE
-
LOCALE_SESSION_KEY
- See Also:
-
engine
-
scriptExecutionStack
-
request
protected final javax.servlet.http.HttpServletRequest request -
response
protected final javax.servlet.http.HttpServletResponse response -
vars
-
head
-
tail
-
root
-
module
-
form
-
basePath
-
-
Constructor Details
-
AbstractWebContext
protected AbstractWebContext(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
-
-
Method Details
-
setModule
-
getRoot
Description copied from interface:WebContext
Gets the root resource if any resource was defined as being the rootA root resource can be any resource from the resource chain.
- Specified by:
getRoot
in interfaceWebContext
- Returns:
- the root resource or null if no root was defined
-
setRoot
Description copied from interface:WebContext
Set the root resource of this context- Specified by:
setRoot
in interfaceWebContext
-
getAdapter
Description copied from interface:Adaptable
Returns an object which is an instance of the given class associated with this object. Returnsnull
if no such object can be found.- Specified by:
getAdapter
in interfaceAdaptable
- Parameters:
adapter
- the adapter class to look up- Returns:
- a object castable to the given class, or
null
if this object does not have an adapter for the given class
-
getModule
Description copied from interface:WebContext
Gets the current web application.- Specified by:
getModule
in interfaceWebContext
- Returns:
- the web root. Cannot return null.
-
getEngine
Description copied from interface:WebContext
Gets the web engine instance.- Specified by:
getEngine
in interfaceWebContext
- Returns:
- the web engine instance. Cannot return null
-
getUserSession
Description copied from interface:WebContext
Gets the current user session.The user session is a WebEngine abstraction for the current user session and can be used to retrieve current login, core session, and to set or get user session variables.
- Specified by:
getUserSession
in interfaceWebContext
- Returns:
- the user session. Never returns null.
-
getCoreSession
Description copied from interface:WebContext
Gets the Core Session (or Repository Session) corresponding to that request.- Specified by:
getCoreSession
in interfaceWebContext
- Returns:
- the core session. Cannot return null
-
getPrincipal
Description copied from interface:WebContext
Gets the principal identifying the user that originated the request.- Specified by:
getPrincipal
in interfaceWebContext
- Returns:
- the current principal. Can return null if the user has not been authenticated.
-
getRequest
public javax.servlet.http.HttpServletRequest getRequest()Description copied from interface:WebContext
Gets the underlying HTTP servlet request object.- Specified by:
getRequest
in interfaceWebContext
- Returns:
- the HTTP Request object. Cannot return null
-
getResponse
public javax.servlet.http.HttpServletResponse getResponse() -
getMethod
Description copied from interface:WebContext
Get HTTP Method.- Specified by:
getMethod
in interfaceWebContext
- Returns:
- the method
-
getModulePath
Description copied from interface:WebContext
Get the path prefix that identify the current web application.The application path will include the base path (context + servlet path).
- Specified by:
getModulePath
in interfaceWebContext
- Returns:
- the application path. Cannot be null
-
getMessage
Description copied from interface:WebContext
Gets the i18n message for the given key.The current module i18n messages are queried first then if no message is found the global message pool is queried (the one living in WEB-INF/i18n). If no message is found the key surrounded by exclamation marks is returned.
- Specified by:
getMessage
in interfaceWebContext
- Parameters:
key
- the message key- Returns:
- the message
-
getMessage
Description copied from interface:WebContext
The same asWebContext.getMessage(String)
but with parameter support- Specified by:
getMessage
in interfaceWebContext
-
getMessage
Description copied from interface:WebContext
The same asWebContext.getMessage(String)
but with parameter support- Specified by:
getMessage
in interfaceWebContext
-
getMessageL
Description copied from interface:WebContext
Same asWebContext.getMessage(String)
but uses the given locale.- Specified by:
getMessageL
in interfaceWebContext
- Parameters:
key
- the message keylanguage
- the locale to use- Returns:
- the message
-
getMessageL
Description copied from interface:WebContext
The same asWebContext.getMessage(String)
but uses the given locale, with parameter support- Specified by:
getMessageL
in interfaceWebContext
-
getMessageL
Description copied from interface:WebContext
The same asWebContext.getMessage(String)
but uses the given locale, with parameter support.- Specified by:
getMessageL
in interfaceWebContext
-
getLocale
Description copied from interface:WebContext
Gets the context locale.If the locale has been set using
WebContext.setLocale(Locale)
, returns the last locale set. Otherwise, compute it from the Accept-Language language sent by the client, usingServletRequest.getLocale()
.- Specified by:
getLocale
in interfaceWebContext
- Returns:
- the context locale
-
setLocale
Description copied from interface:WebContext
Sets the current locale, that will be kept in context.- Specified by:
setLocale
in interfaceWebContext
-
newObject
- Specified by:
newObject
in interfaceWebContext
-
newObject
- Specified by:
newObject
in interfaceWebContext
-
newAdapter
- Specified by:
newAdapter
in interfaceWebContext
-
setProperty
Description copied from interface:WebContext
Sets a context variable.- Specified by:
setProperty
in interfaceWebContext
- Parameters:
key
- the variable keyvalue
- the variable value- See Also:
-
getProperty
Description copied from interface:WebContext
Gets a context variable.Context variables can be used to share data between the scripts that are called in that request (and between Java code too of course).
- Specified by:
getProperty
in interfaceWebContext
- Parameters:
key
- the variable key- Returns:
- the variable value or null if none
-
getProperty
Description copied from interface:WebContext
Gets a context variable.Context variables can be used to share data between the scripts that are called in that request (and between java code too of course).
- Specified by:
getProperty
in interfaceWebContext
- Parameters:
key
- the variable keydefaultValue
- the default value to use if the property doesn't exists- Returns:
- the variable value or the given default value if none
-
getCookie
Description copied from interface:WebContext
Convenience method to get a cookie value.- Specified by:
getCookie
in interfaceWebContext
- Parameters:
name
- the cookie name- Returns:
- the cookie value if any null otherwise
-
getCookie
Description copied from interface:WebContext
Convenience method to get a cookie value using a default value.- Specified by:
getCookie
in interfaceWebContext
- Parameters:
name
- the cookie namedefaultValue
- the value to return when cookie is not set- Returns:
- the cookie value if any or the default if none
-
getForm
Description copied from interface:WebContext
Gets the representation of the data form submitted by the user.This provides access to both POST and GET parameters, or to multipart form data requests.
- Specified by:
getForm
in interfaceWebContext
- Returns:
- the request form data. Cannot return null
-
getBasePath
Description copied from interface:WebContext
Gets the path of the servlet. Same as servlet context path + servlet path.- Specified by:
getBasePath
in interfaceWebContext
- Returns:
- the site path
-
getBaseURL
Description copied from interface:WebContext
Gets the URL of the base path. This is the same asWebContext.getURL()
after removing the path segments over the base path.- Specified by:
getBaseURL
in interfaceWebContext
- Returns:
- the base URL
-
getServerURL
Description copied from interface:WebContext
Gets the server URL without any path or trailing /. The returned string builder can be used to build the wanted URL. If the server is behind a proxy, return the server url of the proxy so writing the url in a webpage is safe.- Specified by:
getServerURL
in interfaceWebContext
- Returns:
- a string builder
-
getURI
Description copied from interface:WebContext
Returns the part of this request's URL from the protocol name up to the query string in the first line of the HTTP request. This is the same asHttpServletRequest.getRequestURI()
.- Specified by:
getURI
in interfaceWebContext
- Returns:
- the request URI. Cannot return null.
-
getURL
Description copied from interface:WebContext
Gets the URL requested by the client. Same asHttpServletRequest.getRequestURL()
.- Specified by:
getURL
in interfaceWebContext
- Returns:
- the request URL. Cannot return null.
-
getUrlPathBuffer
-
getUrlPath
Description copied from interface:WebContext
Gets the path portion of the request URL.- Specified by:
getUrlPath
in interfaceWebContext
- Returns:
- the path portion of the request URL. Cannot return null.
-
getLoginPath
Description copied from interface:WebContext
Gets the login path for the current context.This is the path you can use as a login form action to perform a login or a logout. After the login/logout is done the current page in that context will be served.
- Specified by:
getLoginPath
in interfaceWebContext
-
getUrlPath
This method is working only for root objects that implementModuleResource
- Specified by:
getUrlPath
in interfaceWebContext
- Parameters:
document
- the nuxeo document- Returns:
- the path if any or null if no suitable path can be found XXX can this method return null?
-
getLog
public org.apache.logging.log4j.Logger getLog()Description copied from interface:WebContext
Gets a logger to be used by scripts for logging.- Specified by:
getLog
in interfaceWebContext
- Returns:
- a logger
-
push
- Specified by:
push
in interfaceWebContext
-
pop
- Specified by:
pop
in interfaceWebContext
-
tail
- Specified by:
tail
in interfaceWebContext
-
head
- Specified by:
head
in interfaceWebContext
-
getFile
template and script resolver- Specified by:
getFile
in interfaceWebContext
- Parameters:
path
- the path to resolve into a file- Returns:
- the file or null if the path couldn't be resolved
-
pushScriptFile
-
popScriptFile
-
getCurrentScriptFile
-
getCurrentScriptDirectory
-
render
Description copied from interface:WebContext
Renders the given template using the rendering engine registered in that web engine.This is similar to the
WebContext.render(String, Object, Writer)
method with a null value for the args argument.- Specified by:
render
in interfaceWebContext
- Parameters:
template
- the template to render. Can be a path absolute to the web directory or relative to the caller script if any.writer
- the writer to use- See Also:
-
render
Description copied from interface:WebContext
Renders the given template using the rendering engine registered in that web engine. The given arguments are passed to the rendering process as context variables- Specified by:
render
in interfaceWebContext
- Parameters:
template
- the template to renderctx
- the arguments to passwriter
- the writer to use
-
render
Description copied from interface:WebContext
Renders the given template using the rendering engine registered in that web engine.The given arguments are passed to the rendering process as context variables.
- Specified by:
render
in interfaceWebContext
- Parameters:
script
- the template to renderctx
- the arguments to passwriter
- the writer to use
-
runScript
Description copied from interface:WebContext
Runs the given script.This is similar to
WebContext.runScript(String, Map)
with a null value for the args argument- Specified by:
runScript
in interfaceWebContext
- Parameters:
script
- the script path. Can be a path absolute to the web directory or relative to the caller script if any.- See Also:
-
runScript
Description copied from interface:WebContext
Runs the given script.- Specified by:
runScript
in interfaceWebContext
- Parameters:
script
- the script path. Can be a path absolute to the web directory or relative to the caller script if any.args
- the arguments to pass
-
runScript
Description copied from interface:WebContext
Runs the script using given argumentsThis is similar to
WebContext.runScript(String, Map)
with a null value for the args argument- Specified by:
runScript
in interfaceWebContext
- Parameters:
script
- the script path. Can be a path absolute to the web directory or relative to the caller script if any.args
- a map of arguments- See Also:
-
checkGuard
Description copied from interface:WebContext
Check the given expression in this context and return true if the expression is verified or false otherwise. Any valid guard expression is accepted- Specified by:
checkGuard
in interfaceWebContext
- Parameters:
guard
- the guard to check- Throws:
ParseException
- See Also:
-
createBindings
-
getTargetObject
- Specified by:
getTargetObject
in interfaceWebContext
-
getTargetAdapter
- Specified by:
getTargetAdapter
in interfaceWebContext
-
initializeBindings
-
isRepositorySupportDisabled
public static boolean isRepositorySupportDisabled() -
setIsRepositorySupportDisabled
public static void setIsRepositorySupportDisabled(boolean isRepositoryDisabled) Can be used by the application to disable injecting repository sessions in scripting context. If the application is not deploying a repository injecting a repository session will throw exceptions each time rendering is used.- Parameters:
isRepositoryDisabled
- true to disable repository session injection, false otherwise
-
setRepositoryName
Description copied from interface:WebContext
Sets the repository name that will be used byWebContext.getCoreSession()
.- Specified by:
setRepositoryName
in interfaceWebContext
-