From my personal experience, I would recommend Tiles2: Easy and clean integration with Struts2, allows you to reuse avery single component along various templates, the templates composition can be as complex as you want (supports nesting, pattern inheritance, components referencce, etc), etc. As a negative point, I would mention the XML configuration, which for large project can imply kilometric XML files. Anyway, this can be easily avoided segmenting the config files (i.e a file for general templates, and a separate file for the views if each module), but still, you end up having lots of XML config files...
Another point for the use of Tiles2, is that it's an active project (last release published on June 2010), while Sitemesh project seems a little abandoned (last release on March 2009 as seen here).
Anyway, to check the different points of view (Composite View vs. Decorator pattern), you could take a look here and there, and see which approach will fit better your requirements.