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 public class TemplateTag extends DynamicAttributesTagSupport {
17
18 private String extend;
19
20 public void setExtend(final String extend) {
21 this.extend = extend;
22 }
23
24 @Override
25 public void doTag() throws JspException, IOException {
26 getJspContext().setAttribute("parts", getDynamicAttribute(),
27 PageContext.REQUEST_SCOPE);
28 @SuppressWarnings("unused")
29 JspWriter out = getJspContext().getOut();
30 final ImportTag importTag = new ImportTag();
31 importTag.setPageContext(getPageContext());
32 importTag.setParent(new javax.servlet.jsp.tagext.TagAdapter(
33 (javax.servlet.jsp.tagext.SimpleTag) this));
34 importTag.setUrl(extend);
35 int[] _jspx_push_body_count_c_import_0 = new int[] { 0 };
36 try {
37
38 if (importTag.doStartTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE
39 || importTag.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
40 throw new SkipPageException();
41 }
42 } catch (Throwable _jspx_exception) {
43 while (_jspx_push_body_count_c_import_0[0]-- > 0)
44 out = getJspContext().popBody();
45 try {
46 importTag.doCatch(_jspx_exception);
47 } catch (Throwable e) {
48 throw new JspException(e);
49 }
50 } finally {
51 importTag.doFinally();
52 }
53 }
54 }