/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.struts2.tiles.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Represents a <code><definition></code> element in <code>tiles.xml</code>. * * <p> * With a sample layout in <code>tiles.xml</code> like this: * <pre> * <definition name="layout" template="/WEB-INF/tiles/layout.jsp"> * <put-attribute name="header" value=".header"/> * <put-attribute name="body" value=".body"/> * </definition> * </pre> * </p> * <p> * You can annotate an action like that: * <pre> * {@literal @}Result(name = "success", type="tiles") * {@literal @}TilesDefinition(extend = "layout", putAttributes = { * {@literal @}TilesPutAttribute(name = "header", value = "/WEB-INF/tiles/header.jsp"), * {@literal @}TilesPutAttribute(name = "body", value = "/WEB-INF/tiles/body.ftl") * }) * public class FooAction extends ActionSupport { * </pre> * </p> * */ @Retention(value = RetentionPolicy.RUNTIME) @Target(value = { ElementType.TYPE }) @Inherited public @interface TilesDefinition { String extend() default ""; String name() default ""; String preparer() default ""; String role() default ""; String template() default ""; String templateExpression() default ""; String templateType() default ""; TilesPutAttribute[] putAttributes() default {}; TilesPutListAttribute[] putListAttributes() default {}; }