package org.jboss.seam.ui.facelet; import java.io.IOException; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.Install; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import org.jboss.seam.annotations.intercept.BypassInterceptors; import org.jboss.seam.faces.Renderer; /** * * Implementation of Renderer using Facelets * * Especially useful for sending email using Seam Mail * * @author Pete Muir * @author Norman Richards * */ @Scope(ScopeType.STATELESS) @BypassInterceptors @Name("org.jboss.seam.faces.renderer") @AutoCreate @Install(value = true, precedence = Install.BUILT_IN, classDependencies="com.sun.faces.facelets.Facelet") public class FaceletsRenderer extends Renderer { /** * Render the viewId, anything written to the JSF ResponseWriter is * returned */ @Override public String render(final String viewId) { RendererRequest rendererRequest = new RendererRequest(viewId); try { rendererRequest.run(); } catch (IOException e) { throw new RuntimeException("error rendering " + viewId, e); } return rendererRequest.getOutput(); } }