Pessoal, boa tarde. Estou usando um <h:dataTable para mostrar uma lista de valores. Porém, preciso que uma determinada coluna mostre somente algumas posições de uma String. Tem como eu usar o substring dentro do <h:dataTable, ou <h:column ou <h:outputText?
Grato, Carlos.
Você está usando JSF, certo?
Sabe qual o objetivo do JSF?
Respondo, MVC.
Sabe o que o MVC tenta evitar?
Lógica na camada VIEW.
xhtml (e, portanto, h:dataTabel) são parte da camada VIEW.
Use o managedBean para isto.
Pois é, eu não estou conseguindo visualizar uma solução pro meu problema. Eu recebo um objeto via WebService. Aí, o meu bean cria um List deste objeto e eu consigo recuperar este objeto no meu JSP através do managedBean. Na hora de exibir em um dataTable, eu listo uma String deste objeto. Porém, em determinada situação eu não posso listar o String todo e sim parte dele. Aí eu pensei em usar o substring para fazer isto, tipo assim: <h:outputText value="#{item.String.substring(4, 8)}" /> Alguém tem uma dica para resolver este problema?
Para ter a necessidade de parte da string apenas, você deve ter uma regra de negócios.
Esta regra não vale apenas para a tela, mas para todo o sistema.
Então, use-a em uma iteração da lista e, em cada loop, verifique se se enquadra na regra e então force a quebra.
Cara, o colega, apesar de rispidamente, respondeu a pergunta, crie no MBean um método que lhe retorna a parte da string que deseja, exemplo
MBean.java
private Item item;
...
public String getMeuTexto() {
return item.getValor().substring(4,8);
}
minhaPagina.jsp
<h:outputText value="#{meuMbean.meuTexto}" />
Deve haver alguma outra maneira! Mas, essa funciona.
Abraços!