forEach JavaServer Page tag
    Use the
    forEach
    tag to repeat an action for each property in a page,
    for each page in a
    Page List, or for each property in any list or group.
  
      In runtime stream processing that includes a section or control that includes complex
      parameters on the
      Parameters
      tab, you can use the
      forEach
      tag to iterate over arrays or groups of parameter values.
    
Basics
        Properties with a mode other than
        Single Value
        are known as aggregates.
        The forEach tag iterates through the parts of an aggregate property.
      
        For example, assume a clipboard page named Operators contains embedded
        pxResults()
        pages. The
        pxResults()
        pages each hold a
        property
        pyUserIdentifier
        identifying one customer. Use the forEach tag
        to create an HTML table that contains a row for each customer:
      
<TABLE>
<pega:forEach name="Operators.pxResults">
	<TR><TD>
		<pega:reference name="$THIS.pyUserIdentifier" />
	</TR></TD>
</pega:forEach >
</TABLE>Within the scope of the forEach tag, special keywords are available:
- The keyword $this identifies the current (embedded) page.
- The syntax $this.propertyname represents a property on the current (embedded) page.
- The keyword $this-value represents the (scalar) current active property on the current embedded page.
Complete syntax
In the syntax presentations below:
- 
          Square bracket characters
          [and]define optional parts of the tag. Do not type the brackets.
- 
          JSP delimiters
          <pega..>and</pega...>mark the start and end of the tag.
- Replace any text in italics with your choice of value of that type.
        To do something for each property in a
        Value List,
        Value
          Group,
        Page,
        Page List, or
        Page
          Group, use this syntax. In place of the word aggregate-reference, enter the name
        of the aggregate property.
      
<pega:forEach name="aggregate-reference" >
	actionToRepeat or
</pega:forEach >| Attribute | Description | 
|---|---|
| name | The name of the aggregate property, $this, or$this.propertyname. To refer to a complex parameter, use the
                keyword "param" followed by the complex parameter name. | 
To do some processing for each property in a top-level page, use this syntax:
<pega:forEach name="page-name" >
	actionToRepeat
</pega:forEach >
        If the array contains only
        Single Value
        properties, use the keyword
        $this
        :
      
<pega:forEach name="$this">
	actionToRepeat
</pega:forEach >No conditional "break" or "leave" from the scope of a forEach tag is available: all iterations always occur. To perform only some, rather than all, iterations of a forEach tag, include a <pega:when > element:
<pega:forEach name="page-name" >
	<pega:when ...>
		actionToRepeat if true
	</pega:when>
</pega:forEach >Nesting a forEach tag within the scope of another forEach tag is supported.
        To iterate over complex parameters that are similar in structure to
        Value
          List,
        Value Group,
        Page List, and
        Page
          Group
        properties defined on the
        Parameters
        tab of a
        section or control rule:
      
<pega:forEach name="Param.MyPageList" >
	<pega:reference name="$this.Innervalue"/>
</pega:forEach>Examples
These examples use the forEach tag to display values from clipboard pages.
Arrays within arraysIf the array contains lists of pages, then you can embed a forEach tag and iterate over that list as well:
<pega:forEach name=”.pxResults”>
	<pega:forEach name=”$this.addresses”>
		<pega:reference name=”$this.streetName”/>
	</pega:forEach>
</pega:forEach>To obtain values from an embedded group of pages:
<pega:forEach name=".pxFlow" >
	value="<pega:reference ref="$this.pxAssignmentKey" /> "
</pega:forEach >
        This example uses the
        Work-.pxFlow
        property, a
        Page
          Group. It identifies, in sequence, the value of the
        pxAssignmentKey
        property for each page in the
        Page
          Group.
      
To create a selection box, use syntax similar to the following:
<select name="<p:r n="$this-name" /> ">
<pega:forEach name=".pyKeyDefList" >
	<option value="<pega:reference ref="$this.pyKeyName" />">
<pega:reference ref="$this.pyKeyCaption" >
</pega:forEach >
</select>To create option (radio) buttons, use syntax similar to the following:
<pega:withTarget name="$this" >
	<pega:forEach name=" .pyKeyDefList" >
		<input type="radio" value="<pega:reference
			ref="$this.pyKeyName" / >">
		<pega:reference ref="$this.pyKeyCaption" / >
	</pega:forEach>
</pega:withTarget>An example of iteration over complex parameter values rather than property values:
<pega:forEach name="Param.MyPageList">
	<pega:withEmbedded name="$this" >
		<pega:reference name=".MyInnerValue" />
	</pega:withEmbedded>
</pega:forEach>