This page (revision-63) was last changed on 26-Mar-2013 12:05 by Dieter Käppel

This page was created on 07-Jun-2009 20:54 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
63 26-Mar-2013 12:05 26 KB Dieter Käppel to previous
62 26-Mar-2013 12:05 26 KB Dieter Käppel to previous | to last
61 24-Nov-2012 12:00 26 KB Dieter Käppel to previous | to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 106 added 61 lines
!Beispiel Menü
Eine eigene Menükomponente wird durch die Tage menu und menuItem gebaut. Zunächst wird eine Resource in der components.xml definiert:
{{{
<component name="resource" class="com.intersult.ui.util.ClassPathResource" scope="application">
<property name="resourcePath">/test</property>
<property name="classPath">/de/test/ui/resource</property>
</component>
}}}
Dann der Tage "menu":
{{{
<ui:composition>
<i:meta var="comp" useId="#{id}" rendered="#{empty rendered or rendered}"
stylesheet="#{resource.get('/test.css')}">
<table id="#{comp.clientId}" cellpadding="0" cellspacing="0">
<i:clear var="id,rendered">
<ui:insert/>
</i:clear>
</table>
</i:meta>
</ui:composition>
}}}
Und schließlich der Tag "menuItem":
{{{
<ui:composition>
<i:meta var="itemComp" useId="#{id}" rendered="#{empty rendered or rendered}"
stylesheet="#{resource.get('/test.css')}">
<tr>
<td class="#{itemComp.last ? 'test-menuL' : 'test-menuI'}"/>
<td class="test-menuContent">
<i:clear var="id,rendered">
<s:link id="#{itemComp.clientId}" value="#{label}" action="#{action}" propagation="none"
rendered="#{!empty label}" styleClass="test-menuLink"/>
<ui:insert/>
</i:clear>
</td>
</tr>
</i:meta>
</ui:composition>
}}}
Schließlich wird das Ganze wieder in die test.taglib.xml eingetragen, und in die test.tld, sodass der Content-Assist in der Entwicklungsumgebung den Tag auch anzeigen kann. Die die vorkommenden Styles in die test.css eingetragen. Mit diesen Tags können dann einfach eigene Menüs inklusive beliebig verschachtelter Untermenüs gebaut werden:
{{{
<o:menu>
<o:menuItem label="#{msg['menu1']}" action="menu1"/>
<o:menuItem label="#{msg['menu2']}" action="menu2"/>
<o:menuItem label="#{msg['menu3']}" action="menu3"/>
<o:menu>
<o:menuItem>
<s:link label="#{msg['menu3.1']}" action="menu3.1"/>
</o:menuItem>
</o:menu>
</o:menuItem>
</o:menu>
}}}