Dúvida com Expression Language

5 respostas
Wendell_Albino

Boa noite galera!

Estou querendo utilizar um “LIKE” em minha página JSF para renderizar um componente mas parece que, por enquanto, não existe esta sintaxe.
Alguém já passou por esta necessidade e pode me ajudar?

Exemplo:

<p:inputText id="lacre"
						rendered="#{cadastroEquipamentoBean.equipamento.tipo.descricao like '%ATM%'}"
						value="#{cadastroEquipamentoBean.equipamento.lacre}"
						label="#{msg.lacre}" />

5 Respostas

vtr002

Pelo padrão MVC esse tipo de operação fica não fica na view mas sim no controller.
Se não estiver usando MVC implemente uma classe para fazer ese filtro para você, senão , filtre pela Action do controller

Wendell_Albino

vtr002:
Pelo padrão MVC esse tipo de operação fica não fica na view mas sim no controller.
Se não estiver usando MVC implemente uma classe para fazer ese filtro para você, senão , filtre pela Action do controller

Ok. Mas teria como fazer isso direto na página com EL?

Rodrigo_Sasaki

Wendell Albino:
vtr002:
Pelo padrão MVC esse tipo de operação fica não fica na view mas sim no controller.
Se não estiver usando MVC implemente uma classe para fazer ese filtro para você, senão , filtre pela Action do controller

Ok. Mas teria como fazer isso direto na página com EL?


Não.

Se tiver dúvida consulte a documentação. Lá você pode ver os operadores e as palavras reservadas.

A

Como a galera já falou não é aconselhável fazer isso na view. Mas se você quiser pode fazer usando contains assim:

<p:inputText id="lacre"  
                        rendered="#{cadastroEquipamentoBean.equipamento.tipo.descricao.contains('%ATM%')}"  
                        value="#{cadastroEquipamentoBean.equipamento.lacre}"  
                        label="#{msg.lacre}" />
Wendell_Albino

ayslanms:
Como a galera já falou não é aconselhável fazer isso na view. Mas se você quiser pode fazer usando contains assim:

<p:inputText id="lacre" rendered="#{cadastroEquipamentoBean.equipamento.tipo.descricao.contains('%ATM%')}" value="#{cadastroEquipamentoBean.equipamento.lacre}" label="#{msg.lacre}" />

Obrigado cara! Era isso que estava pensando em fazer! Tirou minha dúvida! Mas como a galera falou aqui não é uma boa prática colocar isso no View.
Muito obrigado a todos que me ajudaram!

Criado 3 de abril de 2013
Ultima resposta 3 de abr. de 2013
Respostas 5
Participantes 4