My Portlet class is something like this:

package br.eti.faces.mail;

import java.io.IOException;

import javax.portlet.PortletException;
import javax.portlet.PortletMode ;
import javax.portlet.PortletSession;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.UnavailableException;

import org.apache.myfaces.portlet.MyFacesGenericPortlet ;

public class MailPortlet extends MyFacesGenericPortlet {

    private String viewPage = null;
    private String editPage = null;
    private String helpPage = null;

    public void init() throws UnavailableException, PortletException {
        viewPage = (String) this.getInitParameter("ViewPage");
        editPage = (String) this.getInitParameter("EditPage");
        helpPage = (String) this.getInitParameter("HelpPage");
        super.init();
    }

    public void render(RenderRequest request, RenderResponse response)
    throws PortletException, IOException {
        PortletSession session = request.getPortletSession ();
        PortletMode mode = (PortletMode)session.getAttribute("CurrentPortletMode");

        if (mode == null) {
            mode = request.getPortletMode();      
        }

        if (!mode.equals( request.getPortletMode())) {
            request.setAttribute("isPortletModeChanged", Boolean.TRUE);
        } else {
            request.setAttribute("isPortletModeChanged", Boolean.FALSE);
        }

        session.setAttribute("CurrentPortletMode", request.getPortletMode());
        super.render(request, response);
    }   
   
    protected void setDefaultView() throws UnavailableException {
        this.defaultView = getPortletConfig().getInitParameter(DEFAULT_VIEW);
        if (defaultView == null) {
            this.defaultView = this.viewPage;
        }
        if (defaultView == null) {
            String msg = "Fatal2: must specify a JSF view id as the default view in portlet.xml";
            throw new UnavailableException(msg);
        }
    }   

    protected void doEdit(RenderRequest request, RenderResponse response)
    throws PortletException, IOException {

        Boolean isPortletModeChanged = (Boolean) request.getAttribute("isPortletModeChanged");
        if (isPortletModeChanged.booleanValue()) {
            setPortletRequestFlag(request);
            nonFacesRequest(request, response, editPage);
            return;
        }

        facesRender(request, response);
    }

    protected void doHelp(RenderRequest request, RenderResponse response)
    throws PortletException, IOException {

        Boolean isPortletModeChanged = (Boolean) request.getAttribute("isPortletModeChanged");
        if (isPortletModeChanged.booleanValue()) {
            setPortletRequestFlag(request);
            nonFacesRequest(request, response, helpPage);
            return;
        }

        facesRender(request, response);
    }   
}


And the bean used in the page in View mode is this:

package br.eti.faces.mail;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Serializable ;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Properties;

import javax.faces.context.FacesContext;
import javax.portlet.PortletPreferences;
import javax.portlet.RenderRequest ;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * @author <a href="" href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]">Rogerio P. Araujo</a>
 */
public class MailView implements Serializable
{
    static final long serialVersionUID = 1l;
   
    private static Log log = LogFactory.getLog(MailView.class);
   
    private String     usuario;
    private String     senha;
   
    private ArrayList<Mensagem>    mensagens;
   
    private String mensagem;
   
    public MailView()
    {

    }
   
    public String verificar()
    {
        return null;
    }

    public ArrayList<Mensagem> getMensagens() {
        return mensagens;
    }

    public void setMensagens(ArrayList<Mensagem> mensagens) {
        this.mensagens = mensagens;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getMensagem() {
        return mensagem;
    }

    public void setMensagem(String mensagem) {
        this.mensagem = mensagem;
    }
}

Reply via email to