Class RequestQueryVar


Request query variable resolver.

The format for this var is "$RQ{key1[,key2...]}".

Used to resolve values returned by RestRequest.getQueryParam(String).
When multiple keys are used, returns the first non-null/empty value.

Example:

// URI = "...?foo=X&bar=Y" String foo = restRequest.getVarResolver().resolve("$RQ{foo}"); String fooOrBar = restRequest.getVarResolver().resolve("$RHQ{foo,bar}");

Notes:
  • This variable resolver requires that a RestRequest bean be available in the session bean store.
  • For security reasons, nested and recursive variables are not resolved.
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • allowNested

      protected boolean allowNested()
      Description copied from class: Var
      Returns whether nested variables are supported by this variable.

      For example, in "$X{$Y{xxx}}", $Y is a nested variable that will be resolved if this method returns true.

      The default implementation of this method always returns true. Subclasses can override this method to override the default behavior.

      Overrides:
      allowNested in class Var
      Returns:
      true if nested variables are supported by this variable.
    • allowRecurse

      protected boolean allowRecurse()
      Description copied from class: Var
      Returns whether variables in the resolved contents of this variable should also be resolved.

      For example, if "$X{xxx}" resolves to "$Y{xxx}", then the $Y variable will be recursively resolved if this method returns true.

      The default implementation of this method always returns true.
      Subclasses can override this method to override the default behavior.

      As a general rule, variables that resolve user-entered data should not be recursively resolved as this may cause a security hole.
      Overrides:
      allowRecurse in class Var
      Returns:
      true if resolved variables should be recursively resolved.
    • resolve

      public String resolve(VarResolverSession session, String key)
      Description copied from class: Var
      The interface that needs to be implemented for subclasses of SimpleVar.
      Specified by:
      resolve in class Var
      Parameters:
      session - The session object used for a single instance of a var resolution.
      key - The inside argument of the variable.
      Returns:
      The resolved value.
    • canResolve

      public boolean canResolve(VarResolverSession session)
      Description copied from class: Var
      Returns true if this variable can be resolved in the specified session.

      For example, some variable cannot resolve unless specific context or session objects are available.

      Overrides:
      canResolve in class Var
      Parameters:
      session - The current session.
      Returns:
      true if this variable can be resolved in the specified session.