是否可以使用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}
希望有帮助……