org.springframework.web.servlet.tags

## Class NestedPathTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - org.springframework.web.servlet.tags.NestedPathTag

- All Implemented Interfaces:
    Serializable, IterationTag, JspTag, Tag, TryCatchFinally

      public class NestedPathTag
      extends TagSupport
      implements TryCatchFinally

  Nested-path tag, to support and assist with nested beans or bean properties in the model. Exports a "nestedPath" variable of type String in request scope, visible to the current page and also included pages, if any.

  The BindTag will auto-detect the current nested path and automatically prepend it to its own path to form a complete path to the bean or bean property.

  This tag will also prepend any existing nested path that is currently set. Thus, you can nest multiple nested-path tags.

  Thanks to Seth Ladd for the suggestion and the original implementation!

  Since:
    1.1
  Author:
    Juergen Hoeller
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `NESTED_PATH_VARIABLE_NAME` Name of the exposed variable within the scope of this tag: "nestedPath".

    - ### Fields inherited from class javax.servlet.jsp.tagext.TagSupport

      `id, pageContext`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NestedPathTag()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `doCatch(Throwable throwable)`
    `int` | `doEndTag()` Reset any previous nestedPath value.
    `void` | `doFinally()`
    `int` | `doStartTag()`
    `String` | `getPath()` Return the path that this tag applies to.
    `void` | `setPath(String path)` Set the path that this tag should apply.

    - ### Methods inherited from class javax.servlet.jsp.tagext.TagSupport

      `doAfterBody, findAncestorWithClass, getId, getParent, getValue, getValues, release, removeValue, setId, setPageContext, setParent, setValue`

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

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

- - ### Field Detail

    - #### NESTED_PATH_VARIABLE_NAME

          public static final String NESTED_PATH_VARIABLE_NAME

      Name of the exposed variable within the scope of this tag: "nestedPath".
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### NestedPathTag

          public NestedPathTag()

  - ### Method Detail

    - #### setPath

          public void setPath(String path)

      Set the path that this tag should apply.

      E.g. "customer" to allow bind paths like "address.street" rather than "customer.address.street".

      See Also:
        `BindTag.setPath(java.lang.String)`

    - #### getPath

          public String getPath()

      Return the path that this tag applies to.

    - #### doStartTag

          public int doStartTag()
                         throws JspException

      Specified by:
        `doStartTag` in interface `Tag`
      Overrides:
        `doStartTag` in class `TagSupport`
      Throws:
        `JspException`

    - #### doEndTag

          public int doEndTag()

      Reset any previous nestedPath value.
      Specified by:
        `doEndTag` in interface `Tag`
      Overrides:
        `doEndTag` in class `TagSupport`

    - #### doCatch

          public void doCatch(Throwable throwable)
                       throws Throwable

      Specified by:
        `doCatch` in interface `TryCatchFinally`
      Throws:
        `Throwable`

    - #### doFinally

          public void doFinally()

      Specified by:
        `doFinally` in interface `TryCatchFinally`