1 package org.seasar.cubby.tags;
2
3 import java.io.IOException;
4
5 import javax.servlet.jsp.JspException;
6 import javax.servlet.jsp.JspWriter;
7 import javax.servlet.jsp.PageContext;
8 import javax.servlet.jsp.SkipPageException;
9
10 import org.apache.taglibs.standard.tag.rt.core.ImportTag;
11
12
13
14
15
16
17
18
19
20 public class TemplateTag extends DynamicAttributesTagSupport {
21
22
23
24
25 private String extend;
26
27
28
29
30
31
32 public void setExtend(final String extend) {
33 this.extend = extend;
34 }
35
36
37
38
39
40 @Override
41 public void doTag() throws JspException, IOException {
42 getJspContext().setAttribute("parts", getDynamicAttribute(),
43 PageContext.REQUEST_SCOPE);
44 @SuppressWarnings("unused")
45 JspWriter out = getJspContext().getOut();
46 final ImportTag importTag = new ImportTag();
47 importTag.setPageContext(getPageContext());
48 importTag.setParent(new javax.servlet.jsp.tagext.TagAdapter(
49 (javax.servlet.jsp.tagext.SimpleTag) this));
50 importTag.setUrl(extend);
51 int[] _jspx_push_body_count_c_import_0 = new int[] { 0 };
52 try {
53
54 if (importTag.doStartTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE
55 || importTag.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
56 throw new SkipPageException();
57 }
58 } catch (Throwable _jspx_exception) {
59 while (_jspx_push_body_count_c_import_0[0]-- > 0)
60 out = getJspContext().popBody();
61 try {
62 importTag.doCatch(_jspx_exception);
63 } catch (Throwable e) {
64 throw new JspException(e);
65 }
66 } finally {
67 importTag.doFinally();
68 }
69 }
70 }