{/doc/acs-templating {Templating}} {} <master>

## Namespace request

> The request commands provide a mechanism for managing the query parameters to a page. The request is simply a special instance of a form object, and is useful for the frequent cases when data must be passed from page to page to determine display or page flow, rather than perform a transaction based on user input via a form.

Also see:

form
  element

### Method Summary

Listing of public methods:

### Method Detail

* indicates required

Public Methods:

> Checks for any param errors. If errors are found, sets the display template to the specified URL (a system-wide request error page by default).

  Parameters:

  `url`* | The URL of the template to use to display error messages. The special value { self} may be used to indicate that the template for the requested page itself will handle reporting error conditions.

Returns:
  1 if no error conditions exist, 0 otherwise.

> Create the request data structure. Typically called at the beginning of the code for any page that accepts query parameters.

Options:

  `params` | A block of parameter declarations, separated by newlines. Equivalent to calling set_param for each parameter, but requiring slightly less typing.

> Declares a query parameter as part of the page request. Validates the values associated with the parameter, in the same fashion as for form elements.

  Parameters:

  `name`* | The name of the parameter to declare.

Options:

  `name` | The name of parameter in the query (may be different from the reference name).
  `multiple` | A flag indicating that multiple values may be specified for this parameter.
  `datatype` | The name of a datatype for the element values. Valid datatypes must have a validation procedure defined in the `template::data::validate` namespace.
  `optional` | A flag indicating that no value is required for this element. If a default value is specified, the default is used instead.
  `validate` | A list of custom validation blocks in the form { name { expression } { message } \ name { expression } { message } ...} where name is a unique identifier for the validation step, expression is a block to Tcl code that evaluates to 1 or 0, and message is to be displayed to the user when the validation step fails.

See Also:
  element::create -

> Manually report request error(s) by setting error messages and then calling is_valid to handle display. Useful for conditions not tied to a single query parameter. The arguments to the procedure may be any number of name-message combinations.

  Parameters:

  `name`* | A unique identifier for the error condition, which may be used for layout purposes.
  `msg`* | The message text associated with the condition.

> Retrieves the value(s) of the specified parameter.

  Parameters:

  `name`* | The name of the parameter.

Returns:
  The value of the specified parameter.

* indicates required