Pessoal, estou com um grande problema e quem puder me ajudar com pelo menos alguma sugestão já tá de bom tamanho.
Tenho um data table que crio dinamicamente através da classe HtmlDataTable. Tá funcionando tudo belezinha. O código fica +/- assim:
[code]HtmlDataTable table = new HtmlDataTable();
table.setVar(“line”);
table.setValue(list);
HtmlColumn col = new HtmlColumn();
HtmlOutputText output = new HtmlOutputText();
O problema é que para os valores que são data, estão sendo mostrados sem formatação. Se eu fosse fazer pela página seria fácil. Era só adicionar a tag <f:convertDateTime pattern=“dd/MM/yyyy” timeZone=“GMT-3” /> dentro do meu outputText. No entanto como estou fazendo tudo dinâmico não estou conseguindo. Vi q existe uma classe com.sun.faces.taglib.jsf_core.ConvertDateTimeTag; mas não sei como faria pra associar o objeto desta classe com o meu HtmlOutputText. Tentei com o output.getChildren().add mas este método só aceita objetos do tipo UiComponent. Alguém já tentou fazer isto ou algo parecido ou tem alguma sugestão do que poderia ser feito?
Para criar o converter vc deve saber o converterId e usar o método:
javax.faces.convert.DateTimeConverter c = FacesContext.getInstance().getApplication().createConverter(javax.faces.convert.DateTimeConverter.DATETIME_ID);
Cara, valeu pela ajuda… Não tinha visto este método setConverter pois tinha declarado minha variável como sendo UIComponentBase mas dando um new em HtmlOutputText. Daí eu só estava vendo os métodos do UIComponentBase. Mas tirando isso, o exemplo de como vc criou o converter não compilou aqui, daí eu criei assim
DateTimeConverter converter = new DateTimeConverter();
converter.setPattern("dd/MM/yyyy");
converter.setTimeZone(TimeZone.getTimeZone("GMT-3"));
Só que mesmo assim não funcionou. Não deu nenhum erro e a aplicação subiu sem problemas, mas continua exibindo os valores no formato errado. Tá exibindo yyyy-MM-dd e quando eu cadastro um novo registro e volto pra página de listagem esse registro fica aparecendo neste formato: Fri Sep 07 00:00:00 BRT 1984. Quando saio e entro na página de novo ela volta a exibir no formato yyyy-MM-dd. Tem alguma idéia do que pode ser?