1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.struts.tiles.taglib;
21
22 import javax.servlet.jsp.JspException;
23
24 /***
25 * Add an element to the surrounding list tag.
26 * Same syntax as <code><put></code>.
27 */
28 public class AddTag extends PutTag {
29
30 /***
31 * default constructor
32 */
33 public AddTag() {
34 super();
35 }
36
37 /***
38 * Call parent tag which must implement AttributeContainer.
39 * @throws JspException If we can't find an appropriate enclosing tag.
40 */
41 protected void callParent() throws JspException
42 {
43
44 AddTagParent enclosingParent = findEnclosingPutListTagParent();
45 enclosingParent.processNestedTag( this );
46 }
47
48 /***
49 * Find parent tag which must implement AttributeContainer.
50 * @throws JspException If we can't find an appropriate enclosing tag.
51 */
52 protected AddTagParent findEnclosingPutListTagParent() throws JspException {
53 try
54 {
55 AddTagParent parent = (AddTagParent)findAncestorWithClass(this,AddTagParent.class);
56 if( parent == null )
57 {
58 throw new JspException( "Error - tag add : enclosing tag doesn't accept 'add' tag." );
59 }
60 return parent;
61 }
62 catch( ClassCastException ex )
63 {
64 throw new JspException( "Error - tag add : enclosing tag doesn't accept 'add' tag." , ex);
65 }
66 }
67 }