permaculture playing cards*
The moose likes JSP and the fly likes How to include page from custom tags Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » JSP
Bookmark "How to include page from custom tags" Watch "How to include page from custom tags" New topic
Author

How to include page from custom tags

Justin Chu
Ranch Hand

Joined: Apr 19, 2002
Posts: 209
    
    1
(I'm repharsing my last problem)
How to include a jsp page/servlet mapping from a custom tag?
I have tried requestdispatcher.include(request, response), and the page's output does not display on the correct position on the HTML page.
I've tried pageContext.include("servletmapping"); and I got an exception thrown. Something about illegal to flush from within a Custom Tag.
Chu
Justin Chu
Ranch Hand

Joined: Apr 19, 2002
Posts: 209
    
    1
Seems like its impossible to include another page from nested tags of BodyTagSupport.
Here's a work around that I've found.
<%
pageContext.setAttribute("jspWriter",out);
%>
<ct:servletList default="/WEB-INF/props.list">
html
<ct:aServlet/>
more html
</ct:servletList>
// aServletTag class
public int doStartTag() throws JspException {
flushParentBodyContent();
// Do dispatcher include
}
protected void flushParentBodyContent() throws JspException{
Tag parent=getParent();
if(parent != null && parent instanceof BodyTagSupport){
BodyTagSupport parentBodyTag=(BodyTagSupport)parent;
BodyContent parentBodyContent = parentBodyTag.getBodyContent();
try {
JspWriter writer = (JspWriter) pageContext.getAttribute("jspWriter");
parentBodyContent.writeOut(writer);
writer.flush();
} catch (IOException e) {
throw new JspException("IterationTag: " +e.getMessage());
}
parentBodyContent.clearBody();
}
}
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How to include page from custom tags