package com.opensymphony.module.sitemesh.tapestry; import org.apache.tapestry.Tapestry; /** * Because Tapestry templating works differently than JSP taglibs, * the writeEntireProperty feature is not implemented here. The built-in * * @Body component is most frequently used, to do something like * this taglib example: * <p/> * <body bgcolor="White"<decorator:getProperty property="body.onload" writeEntireProperty="true" />> * <p/> * it would be done like this in Tapestry: * <p/> * <body jwcid="@Body" bgcolor="White" onload="ognl:@org.opensymphony.module.sitemesh.tapestry@Util.getProperty('onload', requestCycle)"/> * * @author Erik Hatcher */ public abstract class Property extends SiteMeshBase { public abstract String getProperty(); public abstract String getDefault(); public String getValue() { String propertyName = getProperty(); String propertyValue = getSiteMeshPage().getProperty(propertyName); if (Tapestry.isBlank(propertyValue)) { propertyValue = getDefault(); } return propertyValue; } }