Package org.springframework.web.util

# Class TagUtils

java.lang.Object
org.springframework.web.util.TagUtils

public abstract class TagUtils extends Object
Utility class for tag library related code, exposing functionality such as translating `Strings` to web scopes.

- `page` will be transformed to `PageContext.PAGE_SCOPE`
- `request` will be transformed to `PageContext.REQUEST_SCOPE`
- `session` will be transformed to `PageContext.SESSION_SCOPE`
- `application` will be transformed to `PageContext.APPLICATION_SCOPE`

Author:
  Alef Arendsen, Rob Harrop, Juergen Hoeller, Rick Evans

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`SCOPE_APPLICATION`
Constant identifying the application scope.
`static final String`
`SCOPE_PAGE`
Constant identifying the page scope.
`static final String`
`SCOPE_REQUEST`
Constant identifying the request scope.
`static final String`
`SCOPE_SESSION`
Constant identifying the session scope.

## Constructor Summary

Constructors
Constructor
Description
`TagUtils()`

## Method Summary

Modifier and Type
Method
Description
`static void`
`assertHasAncestorOfType(Tag tag, Class<?> ancestorTagClass, String tagName, String ancestorTagName)`
Determine whether the supplied `Tag` has any ancestor tag of the supplied type, throwing an `IllegalStateException` if not.
`static int`
`getScope(String scope)`
Determines the scope for a given input `String`.
`static boolean`
`hasAncestorOfType(Tag tag, Class<?> ancestorTagClass)`
Determine whether the supplied `Tag` has any ancestor tag of the supplied type.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### SCOPE_PAGE

public static final String SCOPE_PAGE
Constant identifying the page scope.

See Also:
  - Constant Field Values

### SCOPE_REQUEST

public static final String SCOPE_REQUEST
Constant identifying the request scope.

See Also:
  - Constant Field Values

### SCOPE_SESSION

public static final String SCOPE_SESSION
Constant identifying the session scope.

See Also:
  - Constant Field Values

### SCOPE_APPLICATION

public static final String SCOPE_APPLICATION
Constant identifying the application scope.

See Also:
  - Constant Field Values

## Constructor Details

### TagUtils

public TagUtils()

## Method Details

### getScope

public static int getScope(String scope)
Determines the scope for a given input `String`.

If the `String` does not match 'request', 'session', 'page' or 'application', the method will return `PageContext.PAGE_SCOPE`.

Parameters:
  `scope` - the `String` to inspect
Returns:
  the scope found, or `PageContext.PAGE_SCOPE` if no scope matched
Throws:
  `IllegalArgumentException` - if the supplied `scope` is `null`

### hasAncestorOfType

public static boolean hasAncestorOfType(Tag tag, Class<?> ancestorTagClass)
Determine whether the supplied `Tag` has any ancestor tag of the supplied type.

Parameters:
  `tag` - the tag whose ancestors are to be checked
  `ancestorTagClass` - the ancestor `Class` being searched for
Returns:
  `true` if the supplied `Tag` has any ancestor tag of the supplied type
Throws:
  `IllegalArgumentException` - if either of the supplied arguments is `null`; or if the supplied `ancestorTagClass` is not type-assignable to the `Tag` class

### assertHasAncestorOfType

public static void assertHasAncestorOfType(Tag tag, Class<?> ancestorTagClass, String tagName, String ancestorTagName)
Determine whether the supplied `Tag` has any ancestor tag of the supplied type, throwing an `IllegalStateException` if not.

Parameters:
  `tag` - the tag whose ancestors are to be checked
  `ancestorTagClass` - the ancestor `Class` being searched for
  `tagName` - the name of the `tag`; for example '`option`'
  `ancestorTagName` - the name of the ancestor `tag`; for example '`select`'
Throws:
  `IllegalStateException` - if the supplied `tag` does not have a tag of the supplied `parentTagClass` as an ancestor
  `IllegalArgumentException` - if any of the supplied arguments is `null`, or in the case of the `String`-typed arguments, is composed wholly of whitespace; or if the supplied `ancestorTagClass` is not type-assignable to the `Tag` class
See Also:
  - `hasAncestorOfType(jakarta.servlet.jsp.tagext.Tag, Class)`