Depois de muito pesquisar e de tentar muitas formas cheguei até esse código:
[quote]package br.com.intercom.sciweb.administracao.action.workspace;
import javax.faces.component.UIViewRoot;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
import com.icesoft.faces.component.ext.HtmlForm;
import com.icesoft.faces.component.ext.HtmlOutputText;
public class AppPhaseListener implements PhaseListener{
public AppPhaseListener() {
}
public void beforePhase(PhaseEvent e) {
}
public void afterPhase(PhaseEvent e) {
// ativa o gerenciador de workspaces
if (e.getFacesContext().getViewRoot().getViewId().equals("/administracao/main.xhtml"))
startup(e.getFacesContext().getViewRoot());
}
protected void startup(UIViewRoot root) {
HtmlForm form = (HtmlForm) root.findComponent("form");
if (form == null){
System.out.println("FORM NULO !!!!!!!!!!!!!!!!");
return;
}
HtmlOutputText copyright = (HtmlOutputText) form.findComponent("copyright");
copyright.setValue("ALTERADO ---------------------");
}
public PhaseId getPhaseId() {
return PhaseId.RENDER_RESPONSE;
}
}[/quote]
O problema que estou tendo é que mesmo achando o componente e setando o novo valor, na view continua o valor antigo, agora eu pergunto será preciso chamar a fase do render response de novo para que os novos valores sejam renderizados ou falta alguma coisa pra fazer.
Estou usando o myEclipse, Jboss, Seam, JSF e ICEFaces