lele_vader 13 de jun. de 2012
Você pode usar jstf com o switch/case e criar o outputText com cada valor.
Ou usar uma expressão de método que talvez retorne o valor correto não sei.
Luciano_Lopes 13 de jun. de 2012
lele_vader:
Você pode usar jstf com o switch/case e criar o outputText com cada valor.
Ou usar uma expressão de método que talvez retorne o valor correto não sei.
como ficaria o código eu fosse usar o “case” ?
rodrigo.ferreira 13 de jun. de 2012
Olá Luciano, bom dia!
Você está fazendo:
<p:column>
<f:facet name= "header" >
<h:outputText value= "Tipo" />
</f:facet>
<h:outputText value= "#{c.tipo==0?'Tipo 1':'Tipo 2'}" />
</p:column>
Neste caso, você pode fazer assim:
<p:column>
<f:facet name= "header" >
<h:outputText value= "Tipo" />
</f:facet>
<h:outputText value= "Tipo 1" rendered= "#{c.tipo==0}" />
<h:outputText value= "Tipo 2" rendered= "#{c.tipo==1}" />
<h:outputText value= "Tipo 3" rendered= "#{c.tipo==2}" />
<h:outputText value= "Tipo 4" rendered= "#{c.tipo==3}" />
</p:column>
Ou, caso estes valores possam sofrer alterações , você deve fazer isso diretamente no ManagedBean, criando um método que vai retornar o valor
<p:column>
<f:facet name= "header" >
<h:outputText value= "Tipo" />
</f:facet>
<h:outputText value= "#{meuBean.texto}" />
</p:column>
public MeuBean ... {
public String getTexto() {
switch (expr) {
case 1:
return "Tipo 1" ;
break ;
case 2:
return "Tipo 2" ;
break ;
// ....
}
return "" ;
}
}
Ou, ainda, caso sua intenção seja fazer um “de-para”, você pode criar um JSF Converter para este seu domínio (Tipo). Veja como criar um JSF Converter neste link: http://infocomputacao.blogspot.com.br/2009/04/criando-convertconversores-no-jsf.html
<p:column>
<f:facet name= "header" >
<h:outputText value= "Tipo" />
</f:facet>
<h:outputText value= "#{c.tipo}" converter= "meuConverter" />
</p:column>
Abraço,
lele_vader 13 de jun. de 2012
Verdade
Dá para fazer usando o renderer e com o tipo.
Mas eu acho melhor fazer uma expressão de método para retornar o valor.
Imagina se tem 100 diferentes ?
Luciano_Lopes 13 de jun. de 2012 1 like
Se eu criar um metodo para receber o nome do tipo realmente funciona, mas no momento preciso fazer a alteração apenas na pagina.No caso desse código, ele iria criar varios campos com os valores diferentes ou iria exibir apenas um campo de acordo com a comparação?
<p:column>
<f:facet name="header">
<h:outputText value="Tipo" />
</f:facet>
<h:outputText value="Tipo 1" rendered="#{c.tipo==0}" />
<h:outputText value="Tipo 2" rendered="#{c.tipo==1}" />
<h:outputText value="Tipo 3" rendered="#{c.tipo==2}" />
<h:outputText value="Tipo 4" rendered="#{c.tipo==3}" />
</p:column>
rodrigo.ferreira 13 de jun. de 2012
Olá, boa tarde!
Ele só vai renderizar o outputText em que a condição de “rendered” for verdadeira, por exemplo:
<h:outputText value="Tipo 1" rendered="#{c.tipo==0}" />
O output acima só será renderizado (exibido) quando c.tipo for igual a 0.
Abraço,
Luciano_Lopes 14 de jun. de 2012
Brigadão galera, resolvido