ScalatraBase

org.scalatra.ScalatraBase
See theScalatraBase companion object

The base implementation of the Scalatra DSL. Intended to be portable to all supported backends.

Attributes

Companion
object
Graph
Supertypes
trait Initializable
trait DynamicScope
trait CoreDsl
trait Control
trait Handler
class Object
trait Matchable
class Any
Show all
Known subtypes

Members list

Type members

Inherited classlikes

trait Config

Attributes

Inherited from:
Initializable
Supertypes
class Object
trait Matchable
class Any

Inherited types

type ConfigT

Attributes

Inherited from:
Initializable

Value members

Abstract methods

def requestPath(implicit request: HttpServletRequest): String

The effective path against which routes are matched. The definition varies between servlets and filters.

The effective path against which routes are matched. The definition varies between servlets and filters.

Attributes

Concrete methods

def after(transformers: RouteTransformer*)(fun: => Any): Unit

Adds a filter to run after the route. The filter only runs if each routeMatcher returns Some. If the routeMatchers list is empty, the filter runs for all routes.

Adds a filter to run after the route. The filter only runs if each routeMatcher returns Some. If the routeMatchers list is empty, the filter runs for all routes.

Attributes

def before(transformers: RouteTransformer*)(fun: => Any): Unit

Adds a filter to run before the route. The filter only runs if each routeMatcher returns Some. If the routeMatchers list is empty, the filter runs for all routes.

Adds a filter to run before the route. The filter only runs if each routeMatcher returns Some. If the routeMatchers list is empty, the filter runs for all routes.

Attributes

def delete(transformers: RouteTransformer*)(action: => Any): Route

Attributes

See also

get

def environment: String
def error(handler: ErrorHandler): Unit

Defines an error handler for exceptions thrown in either the before block or a route action.

Defines an error handler for exceptions thrown in either the before block or a route action.

If the error handler does not match, the result falls through to the previously defined error handler. The default error handler simply rethrows the exception.

The error handler is run before the after filters, and the result is rendered like a standard response. It is the error handler's responsibility to set any appropriate status code.

Attributes

def fullUrl(path: String, params: Iterable[(String, Any)], includeContextPath: Boolean, includeServletPath: Boolean, withSessionId: Boolean)(implicit request: HttpServletRequest, response: HttpServletResponse): String

Builds a full URL from the given relative path. Takes into account the port configuration, https, ...

Builds a full URL from the given relative path. Takes into account the port configuration, https, ...

Value parameters

path

a relative path

Attributes

Returns

the full URL

def get(transformers: RouteTransformer*)(action: => Any): Route

The Scalatra DSL core methods take a list of org.scalatra.RouteMatcher and a block as the action body. The return value of the block is rendered through the pipeline and sent to the client as the response body.

The Scalatra DSL core methods take a list of org.scalatra.RouteMatcher and a block as the action body. The return value of the block is rendered through the pipeline and sent to the client as the response body.

See org.scalatra.ScalatraBase#renderResponseBody for the detailed behaviour and how to handle your response body more explicitly, and see how different return types are handled.

The block is executed in the context of a CoreDsl instance, so all the methods defined in this trait are also available inside the block.

 get("/") {
   <form action="/echo">
     <label>Enter your name</label>
     <input type="text" name="name"/>
   </form>
 }

 post("/echo") {
   "hello {params('name)}!"
 }

ScalatraKernel provides implicit transformation from boolean blocks, strings and regular expressions to org.scalatra.RouteMatcher, so you can write code naturally.

 get("/", request.getRemoteHost == "127.0.0.1") { "Hello localhost!" }

Attributes

override def handle(request: HttpServletRequest, response: HttpServletResponse): Unit

Handles a request and renders a response.

Handles a request and renders a response.

$ 1. If the request lacks a character encoding, defaultCharacterEncoding is set to the request.

$ 2. Sets the response's character encoding to defaultCharacterEncoding.

$ 3. Binds the current request, response, and multiParams, and calls executeRoutes().

Attributes

Definition Classes
Handler
def head(transformers: RouteTransformer*)(action: => Any): Route

Attributes

See also

head

def initParameter(name: String): Option[String]

Gets an init parameter from the config.

Gets an init parameter from the config.

Value parameters

name

the name of the key

Attributes

Returns

an option containing the value of the parameter if defined, or None if the parameter is not set.

def initialize(config: ConfigT): Unit

Initializes the kernel. Used to provide context that is unavailable when the instance is constructed, for example the servlet lifecycle. Should set the config variable to the parameter.

Initializes the kernel. Used to provide context that is unavailable when the instance is constructed, for example the servlet lifecycle. Should set the config variable to the parameter.

Value parameters

config

the configuration.

Attributes

def isDevelopmentMode: Boolean

A boolean flag representing whether the kernel is in development mode. The default is true if the environment begins with "dev", case-insensitive.

A boolean flag representing whether the kernel is in development mode. The default is true if the environment begins with "dev", case-insensitive.

Attributes

def methodNotAllowed(f: Set[HttpMethod] => Any): Unit

Defines a block to run if matching routes are found only for other methods. The set of matching methods is passed to the block.

Defines a block to run if matching routes are found only for other methods. The set of matching methods is passed to the block.

Attributes

def multiParams(key: String)(implicit request: HttpServletRequest): Seq[String]
def multiParams(implicit request: HttpServletRequest): MultiParams

The current multiparams. Multiparams are a result of merging the standard request params (query string or post params) with the route parameters extracted from the route matchers of the current route. The default value for an unknown param is the empty sequence. Invalid outside handle.

The current multiparams. Multiparams are a result of merging the standard request params (query string or post params) with the route parameters extracted from the route matchers of the current route. The default value for an unknown param is the empty sequence. Invalid outside handle.

Attributes

def notFound(fun: => Any): Unit

Defines a block to run if no matching routes are found, or if all matching routes pass.

Defines a block to run if no matching routes are found, or if all matching routes pass.

Attributes

def options(transformers: RouteTransformer*)(action: => Any): Route

Attributes

See also

get

def params(key: String)(implicit request: HttpServletRequest): String
def params(implicit request: HttpServletRequest): Params
def patch(transformers: RouteTransformer*)(action: => Any): Route

Attributes

See also

patch

def post(transformers: RouteTransformer*)(action: => Any): Route

Attributes

See also

get

def put(transformers: RouteTransformer*)(action: => Any): Route

Attributes

See also

get

def redirect(uri: String)(implicit request: HttpServletRequest, response: HttpServletResponse): Nothing

Sends a redirect response and immediately halts the current action.

Sends a redirect response and immediately halts the current action.

Attributes

def relativeUrl(path: String, params: Iterable[(String, Any)], includeContextPath: Boolean, includeServletPath: Boolean)(implicit request: HttpServletRequest, response: HttpServletResponse): String
def serverHost(implicit request: HttpServletRequest): String
def serverPort(implicit request: HttpServletRequest): Int
def servletContext: ServletContext

The servlet context in which this kernel runs.

The servlet context in which this kernel runs.

Attributes

def trap(codes: Range)(block: => Any): Unit

Error handler for HTTP response status code range. You can intercept every response code previously specified with #status or even generic 404 error.

Error handler for HTTP response status code range. You can intercept every response code previously specified with #status or even generic 404 error.

 trap(403) {
  "You are not authorized"
 }
}* 

}}

Attributes

def url(path: String, params: Iterable[(String, Any)], includeContextPath: Boolean, includeServletPath: Boolean, absolutize: Boolean, withSessionId: Boolean)(implicit request: HttpServletRequest, response: HttpServletResponse): String

Returns a context-relative, session-aware URL for a path and specified parameters. Finally, the result is run through response.encodeURL for a session ID, if necessary.

Returns a context-relative, session-aware URL for a path and specified parameters. Finally, the result is run through response.encodeURL for a session ID, if necessary.

Value parameters

params

params, to be appended in the form of a query string

path

the base path. If a path begins with '/', then the context path will be prepended to the result

Attributes

Returns

the path plus the query string, if any. The path is run through response.encodeURL to add any necessary session tracking parameters.

Inherited methods

def contentType: String

Gets the content type of the current response.

Gets the content type of the current response.

Attributes

Inherited from:
ScalatraContext
def contentType_=(contentType: String): Unit

Sets the content type of the current response.

Sets the content type of the current response.

Attributes

Inherited from:
ScalatraContext
def cookies(implicit request: HttpServletRequest): SweetCookies

Attributes

Inherited from:
CookieContext
def format_=(formatValue: String): Unit

Explicitly sets the request-scoped format. This takes precedence over whatever was inferred from the request.

Explicitly sets the request-scoped format. This takes precedence over whatever was inferred from the request.

Attributes

Inherited from:
ScalatraContext
def format_=(formatValue: Symbol): Unit

Explicitly sets the request-scoped format. This takes precedence over whatever was inferred from the request.

Explicitly sets the request-scoped format. This takes precedence over whatever was inferred from the request.

Attributes

Inherited from:
ScalatraContext
def halt(result: ActionResult): Nothing

Attributes

Inherited from:
Control
def halt[T](status: Integer, body: T, headers: Map[String, String]): Nothing

Immediately halts processing of a request. Can be called from either a before filter or a route.

Immediately halts processing of a request. Can be called from either a before filter or a route.

Value parameters

body

a result to render through the render pipeline as the body

headers

headers to add to the response

status

the status to set on the response, or null to leave the status unchanged.

Attributes

Inherited from:
Control
def pass(): Nothing

Immediately exits from the current route.

Immediately exits from the current route.

Attributes

Inherited from:
Control
def session(key: String)(implicit request: HttpServletRequest): Any

Attributes

Inherited from:
SessionSupport
def sessionOption(implicit request: HttpServletRequest): Option[HttpSession]

The current session. If none exists, None is returned.

The current session. If none exists, None is returned.

Attributes

Inherited from:
SessionSupport
protected def shutdown(): Unit

A hook to shutdown the class. Bridges the gap between servlet's destroy and filter's destroy.

A hook to shutdown the class. Bridges the gap between servlet's destroy and filter's destroy.

Attributes

Inherited from:
Initializable
def status: Int

Gets the status code of the current response.

Gets the status code of the current response.

Attributes

Inherited from:
ScalatraContext
def status_=(code: Int): Unit

Sets the status code of the current response.

Sets the status code of the current response.

Attributes

Inherited from:
ScalatraContext
def stringToDate(format: => String): TypeConverter[String, Date]

Attributes

Inherited from:
DefaultImplicitConversions
def stringToDateFormat(format: => DateFormat): TypeConverter[String, Date]

Attributes

Inherited from:
DefaultImplicitConversions
def stringToSeq[T : ClassTag](elementConverter: TypeConverter[String, T], separator: String): TypeConverter[String, Seq[T]]

Attributes

Inherited from:
DefaultImplicitConversions
def trap(code: Int)(block: => Any): Unit

Attributes

See also

error

Inherited from:
CoreDsl
protected def withRequest[A](request: HttpServletRequest)(f: => A): A

Executes the block with the given request bound to the request method.

Executes the block with the given request bound to the request method.

Attributes

Inherited from:
DynamicScope
protected def withResponse[A](response: HttpServletResponse)(f: => A): A

Executes the block with the given response bound to the response method.

Executes the block with the given response bound to the response method.

Attributes

Inherited from:
DynamicScope

Concrete fields

var config: ConfigT

The configuration, typically a ServletConfig or FilterConfig.

The configuration, typically a ServletConfig or FilterConfig.

Attributes

lazy val routes: RouteRegistry

The routes registered in this kernel.

The routes registered in this kernel.

Attributes

Implicits

Inherited implicits

implicit val anyToBoolean: TypeConverter[Any, Boolean]

Attributes

Inherited from:
LowPriorityImplicitConversions
implicit val anyToByte: TypeConverter[Any, Byte]

Attributes

Inherited from:
LowPriorityImplicitConversions
implicit val anyToDouble: TypeConverter[Any, Double]

Attributes

Inherited from:
LowPriorityImplicitConversions
implicit val anyToFloat: TypeConverter[Any, Float]

Attributes

Inherited from:
LowPriorityImplicitConversions
implicit val anyToInt: TypeConverter[Any, Int]

Attributes

Inherited from:
LowPriorityImplicitConversions
implicit val anyToLong: TypeConverter[Any, Long]

Attributes

Inherited from:
LowPriorityImplicitConversions
implicit val anyToShort: TypeConverter[Any, Short]

Attributes

Inherited from:
LowPriorityImplicitConversions
implicit val anyToString: TypeConverter[Any, String]

Attributes

Inherited from:
LowPriorityImplicitConversions
implicit protected def configWrapper(config: ConfigT): Config

Attributes

Inherited from:
Initializable

Attributes

Inherited from:
CookieContext
implicit def defaultStringToSeq[T : ClassTag](implicit evidence$1: ClassTag[T], elementConverter: TypeConverter[String, T]): TypeConverter[String, Seq[T]]

Attributes

Inherited from:
DefaultImplicitConversions
implicit def enrichRequest(request: HttpServletRequest): RichRequest

Attributes

Inherited from:
ServletApiImplicits
implicit def enrichResponse(response: HttpServletResponse): RichResponse

Attributes

Inherited from:
ServletApiImplicits
implicit def enrichServletContext(servletContext: ServletContext): RichServletContext

Attributes

Inherited from:
ServletApiImplicits
implicit def enrichSession(session: HttpSession): RichSession

Attributes

Inherited from:
ServletApiImplicits
implicit def lowestPriorityAny2T[T : ClassTag]: TypeConverter[Any, T]

Attributes

Inherited from:
LowestPriorityImplicitConversions
implicit def request: HttpServletRequest

The currently scoped request. Valid only inside the handle method.

The currently scoped request. Valid only inside the handle method.

Attributes

Inherited from:
DynamicScope
implicit def response: HttpServletResponse

The currently scoped response. Valid only inside the handle method.

The currently scoped response. Valid only inside the handle method.

Attributes

Inherited from:
DynamicScope
implicit def safe[S, T](f: S => T): TypeConverter[S, T]

Attributes

Inherited from:
TypeConverterSupport
implicit def safeOption[S, T](f: S => Option[T]): TypeConverter[S, T]

Implicit convert a (String) => Option[T] function into a TypeConverter[T]

Implicit convert a (String) => Option[T] function into a TypeConverter[T]

Attributes

Inherited from:
TypeConverterSupport
implicit def seqHead[T : ClassTag](implicit evidence$3: ClassTag[T], elementConverter: TypeConverter[String, T]): TypeConverter[Seq[String], T]

Attributes

Inherited from:
DefaultImplicitConversions
implicit def seqToSeq[T : ClassTag](implicit evidence$4: ClassTag[T], elementConverter: TypeConverter[String, T]): TypeConverter[Seq[String], Seq[T]]

Attributes

Inherited from:
DefaultImplicitConversions
implicit def session(implicit request: HttpServletRequest): HttpSession

The current session. Creates a session if none exists.

The current session. Creates a session if none exists.

Attributes

Inherited from:
SessionSupport
implicit val stringToBoolean: TypeConverter[String, Boolean]

Attributes

Inherited from:
DefaultImplicitConversions
implicit val stringToByte: TypeConverter[String, Byte]

Attributes

Inherited from:
DefaultImplicitConversions
implicit val stringToDouble: TypeConverter[String, Double]

Attributes

Inherited from:
DefaultImplicitConversions
implicit val stringToFloat: TypeConverter[String, Float]

Attributes

Inherited from:
DefaultImplicitConversions
implicit val stringToInt: TypeConverter[String, Int]

Attributes

Inherited from:
DefaultImplicitConversions
implicit val stringToLong: TypeConverter[String, Long]

Attributes

Inherited from:
DefaultImplicitConversions
implicit val stringToSelf: TypeConverter[String, String]

Attributes

Inherited from:
DefaultImplicitConversions
implicit val stringToShort: TypeConverter[String, Short]

Attributes

Inherited from:
DefaultImplicitConversions

Attributes

Inherited from:
ScalatraParamsImplicits
implicit def toTypedParams(params: Params): TypedParams

Attributes

Inherited from:
ScalatraParamsImplicits