Olá pessoal,
Estou com alguns probleminhas aqui que não consigo solucionar.
As ações de alguns componentes, só são executadas a partir da segunda vez. Por exemplo, tenho o seguinte código que altera o skin da aplicação ao selecionar um item no selectOneRadio, porem só é alterado ao clicar pela segunda vez no item desejado.
Outro problema é com alguns componentes do RichFaces que não são renderizados se não forem inclusos de modo forçado, conforme mostrado no código do layout.
Alguém pode me ajudar, por favor?
Tela:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<ui:composition template="/WEB-INF/templates/template.xhtml">
<ui:define name="content">
<rich:panel header="Selecione o Skin">
<h:form>
<h:selectOneRadio value="#{appSkinBean.skin}" border="0"
onchange="submit()" label="Skins">
<f:selectItem itemLabel="plain" itemValue="plain" />
<f:selectItem itemLabel="emeraldTown" itemValue="emeraldTown" />
<f:selectItem itemLabel="blueSky" itemValue="blueSky" />
<f:selectItem itemLabel="wine" itemValue="wine" />
<f:selectItem itemLabel="japanCherry" itemValue="japanCherry" />
<f:selectItem itemLabel="ruby" itemValue="ruby" />
<f:selectItem itemLabel="classic" itemValue="classic" />
<f:selectItem itemLabel="deepMarine" itemValue="deepMarine" />
</h:selectOneRadio>
</h:form>
</rich:panel>
</ui:define>
</ui:composition>
</html>
Layout:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:head>
<title><h:outputText value="Teste" /></title>
</h:head>
<h:body>
<table width="100%" cellpadding="0" cellspacing="5">
<tr style="height: 100%; vertical-align: top">
<td colspan="2"><ui:include src="/pages/header.xhtml" /></td>
</tr>
<tr style="height: 100%; vertical-align: top">
<td id="menu" width="200px"><ui:include src="/pages/menu.xhtml" /></td>
<td id="workArea"><ui:insert name="content">Content</ui:insert></td>
<!-- Forçar o carregamento dos componentes -->
<rich:calendar rendered="false"></rich:calendar>
<rich:dataTable rendered="false"></rich:dataTable>
<rich:select rendered="false">
<f:selectItem itemValue="0" itemLabel="Option 1" />
</rich:select>
<rich:inputNumberSpinner rendered="false" value="2"/>
<rich:dataTable rendered="false" >
<rich:column rendered="false"></rich:column>
<rich:dataScroller rendered="false" />
</rich:dataTable>
<rich:tooltip rendered="false"></rich:tooltip>
<rich:popupPanel rendered="false"/>
<!-- fim -->
</tr>
</table>
</h:body>
</html>
Bean:
package br.com.teste.bean;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class AppSkinBean {
private String skin = "deepMarine";
public String getSkin() {
return skin;
}
public void setSkin(String skin) {
this.skin = skin;
}
public String configurarSkin() {
return "configurarSkin";
}
}