Opa 
Tenho uma tabela que o usuário pode incluir N veículos, montei tudo dentro do dataTable e cada vez que clico pra adicionar outro objeto, crio uma nova posição no array:
<h:dataTable value="#{profissional.profissionalBean.veiculos}" var="caminhao" id="tabelaVeiculos">
<h:column>
<table>
<tr>
<td class="fonteLabel">Marca:</td>
<td width="243" class="fonteLabel"><h:inputText required="true" styleClass="campoTexto" id="marca" value="#{caminhao.marca}" disabled="#{profissional.desabilitarCampos}" style=" width : 230px;">
</h:inputText>
</td>
<td class="fonteLabel">Modelo:</td>
<td class="fonteLabel"><h:inputText required="true" id="modelo" styleClass="campoTexto" value="#{caminhao.modelo}" style="height : 22px; width : 226px;" disabled="#{profissional.desabilitarCampos}"/>
</td>
</tr>
<tr>
<td class="fonteLabel">Ano:</td>
<td width="243" class="fonteLabel"><h:inputText required="true" styleClass="campoTexto" id="ano" value="#{caminhao.ano}" disabled="#{profissional.desabilitarCampos}" style=" width : 230px;">
</h:inputText>
</td>
<td class="fonteLabel">Cor:</td>
<td class="fonteLabel"><h:inputText required="true" id="cor" styleClass="campoTexto" value="#{caminhao.cor}" style="height : 22px; width : 226px;" disabled="#{profissional.desabilitarCampos}"/>
</td>
</tr>
<tr>
<td class="fonteLabel">Placa:</td>
<td width="243" class="fonteLabel"><h:inputText required="true" styleClass="campoTexto" id="placa" value="#{caminhao.placa}" disabled="#{profissional.desabilitarCampos}" style=" width : 230px;">
</h:inputText>
</td>
<td class="fonteLabel">Cidade Emplacamento:</td>
<td class="fonteLabel"><h:inputText required="true" id="cidadeEmplacamento" styleClass="campoTexto" value="#{caminhao.cidadeEmplacamento}" style="height : 22px; width : 226px;" disabled="#{profissional.desabilitarCampos}"/>
</td>
</tr>
<tr>
<td class="fonteLabel">Chassi n.:</td>
<td width="243" class="fonteLabel"><h:inputText required="true" styleClass="campoTexto" id="chassi" value="#{caminhao.numeroChassi}" disabled="#{profissional.desabilitarCampos}" style=" width : 230px;">
</h:inputText>
</td>
<td class="fonteLabel">Renavan:</td>
<td class="fonteLabel"><h:inputText required="true" id="renavan" styleClass="campoTexto" value="#{caminhao.renavan}" style="height : 22px; width : 226px;" disabled="#{profissional.desabilitarCampos}"/>
</td>
</tr>
<tr>
<td class="fonteLabel">Categoria:</td>
<td width="243" class="fonteLabel"><h:inputText required="true" styleClass="campoTexto" id="categoria" value="#{caminhao.categoria}" disabled="#{profissional.desabilitarCampos}" style=" width : 230px;">
</h:inputText>
</td>
<td class="fonteLabel">Tipo do Veículo:</td>
<td class="fonteLabel"><h:inputText required="true" id="tipoVeiculo" styleClass="campoTexto" value="#{caminhao.tipoVeiculo}" style="height : 22px; width : 226px;" disabled="#{profissional.desabilitarCampos}"/>
</td>
</tr>
<tr>
<td colspan="4"><br/>
<a4j:region>
<a4j:commandButton action="#{profissional.addVeiculo}" value="Adicionar Outro Caminhao"
reRender="tabelaVeiculos" />
</a4j:region>
</td>
</tr>
</table>
</h:column>
</h:dataTable>
Este trecho acima é o que deveria ser recriado. No meu managed-bean, eu fiz o seguinte:
public void addVeiculo(){
VeiculoBean veiculo = new VeiculoBean();
veiculo.setProfissional(getProfissionalBean());
veiculo = getProfissionalBean().getVeiculos().get(getProfissionalBean().getVeiculos().size() -1);
getProfissionalBean().getVeiculos().add(veiculo);
getProfissionalBean().getVeiculos().size();
getProfissionalBean().getVeiculos().add(new VeiculoBean());
}
Alguém sabe pq a dataTable não está sendo ‘recriada’? Pq qdo eu olho o tamanho do array, ele aumenta toda vez que eu clico.
[]'s