<definition name="system.admin.none.rootLayout.layout" path="/layoutswitch.do"
controllerUrl="/system/style/controller/myPortalSettings.do" >
<put name="definitionname" value="system.admin.none.rootLayout.layout" />
<put name="type" value="layout" />
<put name="css" value="/layouts/stylesheet.css"/>
<put name="title" value="标题" />
<put name="header" value="/tiles-template/system/admin/tiles-components/topBanner.jsp" />
<put name="header-height" value="30" />
<put name="topMenu" value="system.admin.none.maintopmenu.topmenu" />
<put name="topMenu-height" value="30" />
<put name="footer" value="/tiles-template/system/admin/tiles-components/footer.jsp" />
<put name="footer-height" value="30" />
<put name="left-width" value="20%" />
<put name="left" value="CHANGE-ME" />
<put name="body-width" value="50%" />
<put name="body" value="CHANGE-ME" />
<put name="right-width" value="20%" />
<put name="right" value="CHANGE-ME" />
<put name="footerDebug" value="CHANGE-ME" />
<putList name="listLeft" >
<add value="system.admin.userMenu" />
<add value="system.admin.none.configure.menu" />
<add value="system.admin.none.resource.menu" />
<add value="system.admin.none.portal.menu" />
<add value="system.admin.none.party.menu" />
</putList>
<putList name="listBody" >
<add value="CHANGE-ME" />
</putList>
<putList name="listRight" >
<add value="CHANGE-ME" />
</putList>
</definition>
在我这个例子里,
通过layoutswitch.do实现不同layout切换,你可以定义多种layout.jsp让后在这里选择。
system/style/controller/myPortalSettings.do可以动态的决定put参数,putlist参数,把xml里的当作是初始值,实际值可以通过这个action从数据库或其他xml中获得。
我感觉,definition可以通过组合definition形成树状结构,从而形成灵活复杂的页面设置,还可以在definition中设置css或其他参数控制显示或加入role权限控制等。