Caros colegas,
Estou utilizando JSF na camada de apresentação e a situação é a seguinte:
Tenho uma classe, cujo um dos atributos está persistido no banco como char[1]. Este atributo armazena um caractere que representa o tipo do objeto. Por
exemplo:
caractere ‘f’ representa = “Telefone fixo”
caractere ‘c’ representa = “Celular”
e assim vai…
Fiz o formulário de cadastro utilizando uma lista de selectItem no meu managed bean e no meu jsp a tag JSF <f:selectItems>. Funcionou perfeitamente.
Minha dúvida é na página que lista os dados.
Os valores do atributo “tipo” é mostrado como está persistido no banco (char[1]).
Existe alguma maneira através do jsf para que ele converta os valores e os mostre de forma completa.
Segue as fontes…
Bean
public class PontoControle {
private Integer id;
private String descricao;
private char tipo;
//get e set omitidos
}
ManagedBean
//inicio do codigo omitido
public List<SelectItem> getListaTipos() {
List<SelectItem> listaTipos = new ArrayList<SelectItem>();
listaTipos.add(new SelectItem('f', "Telefone Fixo"));
listaTipos.add(new SelectItem('c', "Telefone Celular"));
return listaTipos;
}
fomulario cadastro jsf
//inicio do codigo omitido
<h:outputText value="Tipo" />
<h:selectOneMenu id="tipo" value="#{pontoController.ponto.tipo}">
<f:selectItems value="#{pontoController.listaTipos}" />
</h:selectOneMenu>
pagina que lista os dados persistidos
//inicio do codigo omitido
<h:dataTable value="#{pontoController.todos}" var="item" border="1">
<h:column>
<f:facet name="header">
<h:outputText value="Código" />
</f:facet>
<h:outputText value="#{item.id}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Descrição" />
</f:facet>
<h:outputText value="#{item.descricao}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Tipo" />
</f:facet>
<h:outputText value="#{item.tipo}" />
</h:column>
</h:dataTable>
Desde já… obrigado!