Renderização de matriz 2D sem <h: dataTable />

Estou tentando mostrar um array 2D como uma tabela em uma página. Eu sei que isso soa como se eu estivesse reinventando a roda, mas o objeto que eu tenho que manipular é uma matriz 2D de um tipo personalizado que também deve ser renderizado de uma maneira particular (sempre a mesma).

A parte complicada é que esse array 2D pode ter valores nulos em alguns dos seus índices. Nesses casos, uma determinada célula "indisponível" deve ser renderizada. A estrutura da mesa (sim ...<table> <tr> e<td>) já foi definido peloEquipe de design e aceito pelo cliente.

Eu tentei usar<c:forEach/> mas teve problemas tentando fazer isso funcionar, por causa da ordem na qual as tags JSTL e JSF são gerenciadas. Quando as tags JSF são manipuladas, há alguns problemas que incluem valores desatualizados e componentes ausentes.

O array (atributo de um@ViewScoped bean) é sempre nulo quando<c:forEach/> é invocado, mesmo quando eu forço a criação do array:

public MyObject[][] getMatrix() {
    if(loadedMatrix == null)
        initializeMatrix();
    return loadedMatrix.getTable();
}

oinitializeMatrix() O método obtém os dados correspondentes do banco de dados e invoca a lógica que cria o array 2D, tornandoloadedMatrix referenciá-lo uma vez que é criado (tudo isso funciona, sem exceções ou erros). QuandoinitializeMatrix acabamentosloadedMatrix está paradonull.

Eu fui para o aninhado<c:forEach/> opção porque eu preciso gerenciar os índices da tabela para saber o que renderizar (se o objeto é nulo, tem um sinalizador de disponibilidade definido como false ou se pode ser processado normalmente), mas por enquanto eu acho que a solução mais segura é crie um componente personalizado.

Minha pergunta é: Quais alternativas eu tenho para renderizar o conteúdo de um array 2D como uma tabela enquanto estou ciente dos índices que estou renderizando?

desde já, obrigado

questionAnswers(1)

yourAnswerToTheQuestion