[RESOLVIDO] itemLabel - Com atributo e string

Boa tarde pessoal!
Desculpem não ter expressado corretamente no título do tópico, pois não sei como se chama a expressão #{} (caso souber, ja me ensina :D)

Uso JSF - Primefaces.
Tenho isso, e está ok:

itemLabel="#{t.cli_id != NULL ? t.cli_id.cli_razao : t.est_id.est_nome}"

O que eu preciso, é digitar texto no meio desse IF dentro…

Tipo:

itemLabel="#{t.cli_id != NULL ? }Cliente: #{t.cli_id.cli_razao : } Estado: #{t.est_id.est_nome}"

Qual a sintaxe correta pra eu fazer isso?
Dei uma procurado também, não achei nada relacionado, pois não sei o nome da expressão citada…

Obrigado desde já!

Se chama expression language.
Não sei se eu aprendi errado, mas na minha época costumávamos usar o que alguns chamam de helpers e outros de beans (acho que bean, em java, é meio que um coringa, serve para denominar qualquer coisa), que eram classes cujos objetos representavam os elementos de tela. Isso fazia com que não houvesse necessidade de por lógica na camada de apresentação.
Claro que isso deve ser meio antiquado no mundo de hoje, mas na minha época era tão mais fácil…

[quote=drsmachado]Se chama expression language.
Não sei se eu aprendi errado, mas na minha época costumávamos usar o que alguns chamam de helpers e outros de beans (acho que bean, em java, é meio que um coringa, serve para denominar qualquer coisa), que eram classes cujos objetos representavam os elementos de tela. Isso fazia com que não houvesse necessidade de por lógica na camada de apresentação.
Claro que isso deve ser meio antiquado no mundo de hoje, mas na minha época era tão mais fácil…
[/quote]
Eu entendo que não se deve usar lógica na página xhtml, o problema é que de acordo de como foi montado o banco de dados, ou eu tenho um ou outro, eu pensei em montar um converter, ou uma classe auxiliar (essa opção só pioraria)… Então acho que a melhor solução, caso tenha como resolver, ia ser essa lógica no xhtml, pois não iria ser utilizado em mais lugar algum…

Obrigado!

Já que vai gambiarrar… Faz direito então

<h:elemento itemLabel="Cliente: #{t.cli_id.cli_razao : }" rendered="#{t.cli_id != NULL}"/>
<h:elemento itemLabel="Estado: #{t.est_id.est_nome}" rendered="#{t.cli_id == NULL}"/>

Manja?

[quote=drsmachado]Já que vai gambiarrar… Faz direito então

<h:elemento itemLabel="Cliente: #{t.cli_id.cli_razao : }" rendered="#{t.cli_id != NULL}"/>
<h:elemento itemLabel="Estado: #{t.est_id.est_nome}" rendered="#{t.est_id != NULL}"/>

Manja?[/quote]

Tentei a gambi mas também nao funcionou:

<f:selectItems value="#{produtosBean.tabelas}" var="t" itemValue="#{t}" itemLabel="Estado: #{t.est_id.est_nome}" rendered="#{t.est_id != null}" /> <f:selectItems value="#{produtosBean.tabelas}" var="tt" itemValue="#{tt}" itemLabel="Cliente: #{tt.cli_id.cli_razao}" rendered="#{tt.cli_id != null}" />

(ou os dois com var igual, tambem nao funcionou…)

Podes criar parâmetros concatenados e passar pra tua EL.

Ex:

[code]<ui:param name=“cliente” value=“Cliente: #{t.cli_id.cli_razao}”></ui:param>
<ui:param name=“estado” value=“Estado: #{t.est_id.est_nome}”></ui:param>

itemLabel="#{t.cli_id != NULL ? cliente : estado}" [/code]

Vê se funciona…

[quote=edubiss]Podes criar parâmetros concatenados e passar pra tua EL.

Ex:

[code]<ui:param name=“cliente” value=“Cliente: #{t.cli_id.cli_razao}”></ui:param>
<ui:param name=“estado” value=“Estado: #{t.est_id.est_nome}”></ui:param>

itemLabel="#{t.cli_id != NULL ? cliente : estado}" [/code]

Vê se funciona…[/quote]

Obrigado, mas achei uma forma que creio eu que seja mais “leve”…
Mas tenho certeza que um dia irei usar o ui:param, pois eu não conhecia! Obrigado!

Ficou assim:

itemLabel="#{t.cli_id != NULL ? 'Cliente:' : 'Estado:'} #{t.cli_id != NULL ? t.cli_id.cli_razao : t.est_id.est_nome}"