Looping Tags

JETT has several built-in looping tags. These tags are used to display repeating content, such as indexed content or Collections. Normally, the block's content is copied downward to display repeating content. Other content that is below the block is shifted downward to make room.

All looping tags are defined by classes that subclass the abstract class BaseLoopTag, which itself subclasses the abstract class BaseTag. These are JETT's built-in looping tags:

All looping tags support several common attributes:

Attributes

  • All looping tags support all base tag attributes.
  • copyRight: Boolean Optional. Normally, content below the block is shifted downward to make room for the copied blocks. But if this attribute is true, then this will shift content to the right of the block out of the way, and the block will be copied to the right instead of downward. Default: false (downward).
  • fixed: Boolean Optional. If true, then the tag will assume that the proper space is present into which the blocks will be copied, so it will NOT shift other content out of the way to make room for the copied blocks. Default: false (shifting content out of the way will occur).
  • pastEndAction: String Optional. If specified, then its value controls what happens to blocks when it is beyond the end of iteration on a Collection. The circumstances that allow extra blocks beyond the end of a Collection are explained in the page for each looping tag, when they arise. Here are the possible values:
    • clear This works just like the "elseAction" attribute of the if tag: remove the contents of the cells. This is the default.
    • remove This works just like the "elseAction" attribute of the if tag: remove the cells, including cell contents, formatting, borders, and merged regions.
    • replaceExpr Don't delete the contents of the entire cell. Replace any expressions that reference collections that have been exhausted with the result of evaluating the replaceValue attribute.
  • replaceExpr: String Optional. If the pastEndAction is replaceExpr, then all expressions that reference collections that have been exhausted are replaced with this value. This is ignored if pastEndAction is not replaceExpr. Default: an empty string.
  • groupDir: String Optional. This works just like the "groupDir" attribute of the group tag: if specified, then JETT will create an Excel Group (Outline) out of the resultant rows or columns. Here are the possible values:
    • rows Create an Excel Group (Outline) out of the resultant rows.
    • cols Create an Excel Group (Outline) out of the resultant columns.
    • none Do not create an Excel Group (Outline). This is the default.
  • collapse: boolean Optional. This works just like the "collapse" attribute of the group tag: This determines whether the Excel Group (Outline) created is in a collapsed state. The default is false (not collapsed).
  • onLoopProcessed: TagLoopListener Optional. Specify a TagLoopListener that will be called every time a loop's processing has finished. Alternatively, a fully-qualified Java class name may be specified here, and JETT will instantiate one, provided it has a no-argument public constructor.
  • varStatus: String Optional. This specifies a variable name for an object to be exposed in the beans map. This object exposes the 0-based iteration index and whether it's the first iteration or the last iteration. Use the "index" (int), "first" (boolean), and "last" (boolean) properties.