ATG Dynamo
Admittedly you could do this by defining a Hashmap in the page (or using pageContext directly), but this is so much cleaner. And with DSPEL you wouldn't even need the setvalue...
<dsp:droplet name="ProfileLookup">
<dsp:param name="id" param="profileId"/>
<dsp:param name="elementName" value="profile"/>
<dsp:oparam name="output">
<dsp:getvalueof id="profileObj" param="profile">
<%-- Set globally throughout the page :-) --%>
<c:set var="profile" value="${profileObj}"/>
</dsp:getvalueof>
</dsp:oparam>
</dsp:droplet>
<dsp:setvalue param="profile" value="<%= pageContext.getAttribute("profile") %>"/>