Ich möchte einen Tag schreiben, der seinen Body nach bestimmten Kriterien rendert, diesen leicht veränderten Body danach aber weiter an die JSP-Engine geben soll. Leider funktioniert das nicht, der Body ist immer leer. Woran liegt es?
EDIT: Ich habe das Hauptproblem, dass der Body erst von der JSP-Engine gerendert , und dann erst in den BodyContent geschrieben wird. Ich benötige es aber genau andersherum!
Code:
public class ParseTag extends BodyTagSupport {
private static final long serialVersionUID = 1L;
/* *****************************************************
* B O D Y T A G - I M P L E M E N T A T I O N *
***************************************************** */
public int doAfterBody() throws JspException {
try {
final String newBody = new ContentParser().parse(getBodyContent().getString());
getBodyContent().clear();
getBodyContent().write(newBody);
} catch (IOException e) {
throw new JspException(e);
} catch (ParseException e) {
throw new JspException(e);
};
return SKIP_BODY;
}
public int doEndTag() throws JspException {
return EVAL_PAGE;
}
public int doStartTag() throws JspException {
return EVAL_BODY_BUFFERED;
}
}
EDIT: Ich habe das Hauptproblem, dass der Body erst von der JSP-Engine gerendert , und dann erst in den BodyContent geschrieben wird. Ich benötige es aber genau andersherum!