package be.gervaisb.ogam.edu.web.tags; import java.io.File; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyContent; import javax.servlet.jsp.tagext.BodyTagSupport; import javax.servlet.jsp.tagext.TagSupport; public class ExtensionTag extends TagSupport { /** Serial version UID */ private static final long serialVersionUID = 375320142011338571L; private String extended; private String part; public void setExtended(final String extended) { this.extended = extended; } public void setPart(final String part) { if ( !part.equalsIgnoreCase("form") && !part.equalsIgnoreCase("view") ) { throw new IllegalArgumentException( "Only \"form\" or \"view\" are alloweds as \"part\" attributes."); } this.part = part.trim(); } @Override public int doStartTag() throws JspException { try { StringBuilder path = new StringBuilder() .append("../../extended/").append(extended) //.append('/').append(extended.replace('.', '/')) .append('/').append(part).append(".jsp"); pageContext.getOut().write("Page"); pageContext.include(path.toString(), true); //pageContext.include(path.toString()); } catch (Exception e) { e.printStackTrace(); throw new JspException("Failed to write extension", e); } System.out.println("EVAL_BODY_AGAIN"); return EVAL_BODY_AGAIN; } @Override public int doEndTag() throws JspException { return EVAL_PAGE; } }