package org.rendersnake.ext.spring; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.rendersnake.HtmlCanvas; import org.rendersnake.Renderable; import org.springframework.web.servlet.View; /** * RenderableView is used together with the RenderableViewResolver * to render a component with context data available through the model. * * @author e.micklei */ public class RenderableView implements View { Renderable component; String contentType; /** * @param render * @param contentType */ public RenderableView(Renderable render, String contentType) { this.component = render; this.contentType = contentType; } /* (non-Javadoc) * @see org.springframework.web.servlet.View#getContentType() */ public String getContentType() { return contentType; } /* (non-Javadoc) * @see org.springframework.web.servlet.View#render(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception { HtmlCanvas html = HtmlCanvasFactory.createCanvas(request, response, response.getWriter()); HtmlCanvasArgumentResolver.setupPageContext(request, html.getPageContext()); html.getPageContext().attributes.putAll(model); html.render(component); } }