user2361862
user2361862

Reputation: 95

Variable set by ui:param or c:set inside ui:repeat is not available outside ui:repeat

I would like to define a variable and reuse it somewhere else on the page. I'm defining variable in JSF using <ui:param> and <c:set> and resetting it in the <ui:repeat> depending on condition as follows:

<ui:param name="title" value="default value"/>
<c:set var="title2" value="default val"/>                              
  <ui:repeat value="#{aClip.revisions}" var="revs" varStatus="revStat">
    <ui:repeat value="#{revs.metadataMap.entry}" var="entryLst">
        <ui:repeat value="#{entryLst}" var="entry">
          <ui:repeat value="#{entry.value}" var="metaVal">
              <ui:repeat value="#{metaVal.values}" var="aValue">
                  <ui:fragment rendered="#{metaVal.key eq 'Title'}">
                      rendered //this prints. condition is evaluted to true
                      <ui:param name="title" value="#{aValue}"/>
                      <c:set var="title2" value="#{aValue}"/>
                  title2 -- #{title2}   title -- #{title}    //prints
                  </ui:fragment>                                         

               </ui:repeat>
             </ui:repeat>
           </ui:repeat>
          </ui:repeat>
        </ui:repeat>                                
 title2 -- #{title2}    title -- #{title} //does not print value not even defualt val

I know condition is true and value is set, but when I try to use it outside loop, it doesn't evalute. It doesn't even evalute to defualt value given to variable while defining.

How is this caused and how can I solve it?

Upvotes: 1

Views: 1078

Answers (0)

Related Questions