是否可以使用Sitemesh直接在JSP中定义装饰器?

我知道我应该在配置文件或我自己的ConfigurableSiteMeshFilter子类中定义装饰器。 例如:

 public class SitemeshFilter extends ConfigurableSiteMeshFilter { @Override protected void applyCustomConfiguration(final SiteMeshFilterBuilder builder) { builder.addDecoratorPath("/*", "/WEB-INF/views/layouts/default.jsp"); } } 

这对我有用,但这并不完美。 我可以在JSP文件中定义直接使用的装饰器吗?

      Home    

Hello world!

${body}

使用元标记

我们一直这样做。

在您的sitemesh.xml中,允许页面位于名为decorator的元标记中,如:

        

在decorators.xml中,添加一个装饰器,如:

     

然后,在您的html或jsp页面中,您可以添加一个名为decorator的元标记,以在默认模板和替代模板之间切换:

 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page session="false" %>    Home    

Hello world!

${body}

希望有帮助……