Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Expression must be a value expression but is a method expression

Olá pessoal,

Estou com dificuldades para entender o um erro que estou tomando em uma expression language. Estava desenvolvendo uma aplicação e precisei formatar meu computador.

Após reinstalar o eclipse, e a unica diferena que consigo pensar agora para o ambiente de desenvovimento anterior é que o antes usava a versão Mars e agora a Photon, passei a tomar o seguinte erro em uma expression language:

"Expression must be a value expression but is a method expression"

<p:column headerText="Código" style="text-align: center; width: 1px">
    <h:outputText value="#{cadastroBean.produto.imagens.indexOf(imagem)+1}" />
</p:column>

Sendo que imagens é um array list e o metodo index retorna um long.

private List<Imagem> imagens = new ArrayList<>();

Porque o Eclipse não está reconhendo isso ? (que funcionava antes)

1 resposta
solução!

Consegui resolver o problema envolvendo a chamada do metodo por parenteses:

<h:outputText value="#{(cadastroBean.produto.imagens.indexOf(imagem))+1}" />

Interessante que em outra maquina, que está com eclipse neon intalado, importei o projeto e o codigo original, sem parenteses, executou sem problemas.