JSF selectItem formatação de etiquetas
Pergunta
Tentando manter todo o material de apresentação no xhtml neste projeto e eu preciso formatar alguns valores em uma tag selectItem ter um valor BigDecimal e necessidade de fazer com que pareça moeda. Existe uma maneira de aplicar um <f:convertNumber pattern="$#,##0.00"/>
Dentro de um tag <f:selectItem>
?
Qualquer maneira de fazer isso ou uma solução que não envolve empurrando esta no código java?
Solução
Depois de fazer mais algumas pesquisas aqui estou bastante convencido de que isso não é possível com a implementação atual do JSF. Não há apenas uma oportunidade para transformar o valor.
http://java.sun.com /javaee/javaserverfaces/1.2/docs/tlddocs/f/selectItem.html
O TLD mostra a propriedade itemLabel
como sendo um ValueExpression
eo conteúdo do corpo de <f:selectItem>
como sendo vazio. Portanto, nada é permitido a existir um dentro dessas marcas, e o rótulo tem que apontam para um valor literal no modelo de Java. Assim tem ser ser formatado saindo do modelo de Java.
Outras dicas
sendo um novato para jsf Eu tive um problema semelhante, talvez a minha solução é útil, talvez não no "espírito jsf"
i acaba de criar uma taglib personalizado e estendido a classe (no meu caso org.apache.myfaces.component.html.ext.HtmlCommandButton) e overrided os setters para aplicar parâmetros personalizados.
então ao invés de <t:commandButton/>
i usado <mytags:commandButton/>
, que é tão flexível quanto eu quero.
Você poderia configurar um conversor com esse padrão, mas que soa como o oposto ao que você quer.