Combining SeamFaceletViewHandler and com.sun.facelets.FaceletPortletViewHandler 
allowed me to take a next step forward in making JSF+myfaces+portlets+seam 
together:

/*
  |  * JBoss, Home of Professional Open Source
  |  * Copyright 2006, JBoss Inc., and individual contributors as indicated
  |  * by the @authors tag. See the copyright.txt in the distribution for a
  |  * full listing of individual contributors.
  |  *
  |  * This is free software; you can redistribute it and/or modify it
  |  * under the terms of the GNU Lesser General Public License as
  |  * published by the Free Software Foundation; either version 2.1 of
  |  * the License, or (at your option) any later version.
  |  *
  |  * This software is distributed in the hope that it will be useful,
  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  |  * Lesser General Public License for more details.
  |  *
  |  * You should have received a copy of the GNU Lesser General Public
  |  * License along with this software; if not, write to the Free
  |  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  |  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  |  */
  | 
  | package org.jboss.seam.ui.facelet;
  | 
  | import java.io.IOException;
  | import java.io.Writer;
  | 
  | import javax.faces.FacesException;
  | import javax.faces.application.ViewHandler;
  | import javax.faces.context.ExternalContext;
  | import javax.faces.context.FacesContext;
  | import javax.faces.context.ResponseWriter;
  | import javax.faces.render.RenderKit;
  | import javax.portlet.RenderRequest;
  | import javax.portlet.RenderResponse;
  | 
  | /**
  |  * This class just extends the SeamFaceletViewHandler to support Portlet 
usage of Facelets.
  |  * 
  |  * 
  |  * Merge of SeamFaceletViewHandler and 
com.sun.facelets.FaceletPortletViewHandler
  |  * 
  |  * @author Jarkko Lietolahti
  |  */
  | public class SeamPortletFaceletViewHandler extends SeamFaceletViewHandler {
  | 
  |     public SeamPortletFaceletViewHandler(ViewHandler parent) {
  |             super(parent);
  |     }
  | 
  |     protected ResponseWriter createResponseWriter(FacesContext context)
  |                     throws IOException, FacesException {
  |             
  |             ExternalContext extContext = context.getExternalContext();
  |             RenderKit renderKit = context.getRenderKit();
  | 
  |             RenderRequest request = (RenderRequest) extContext.getRequest();
  |             RenderResponse response = (RenderResponse) 
extContext.getResponse();
  | 
  |             String contenttype = request.getResponseContentType();
  |             if (contenttype == null) {
  |                     contenttype = "text/html";
  |             }
  | 
  |             String encoding = response.getCharacterEncoding();
  |             if (encoding == null) {
  |                     encoding = "ISO-8859-1";
  |             }
  |             
  |             ResponseWriter writer = renderKit.createResponseWriter(  
  |                             NullWriter. Instance, contenttype, encoding);
  | 
  |             contenttype = writer.getContentType();
  | 
  |             // apply them to the response
  |             response.setContentType(contenttype);
  | 
  |             // Now, clone with the real writer
  |             writer = writer.cloneWithWriter(response.getWriter());
  | 
  |             return writer;
  |     }
  |     
  |        protected static class NullWriter extends Writer {
  | 
  |             static final NullWriter Instance = new NullWriter();
  | 
  |             public void write(char[] buffer) {
  |             }
  | 
  |             public void write(char[] buffer, int off, int len) {
  |             }
  | 
  |             public void write(String str) {
  |             }
  | 
  |             public void write(int c) {
  |             }
  | 
  |             public void write(String str, int off, int len) {
  |             }
  | 
  |             public void close() {
  |             }
  | 
  |             public void flush() {
  |             }
  |         }
  | 
  | 
  | }

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3973568#3973568

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3973568
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to